I'll throw in my 2 cents on pgsql versus mysql
This is my experience with both, YMMV.
My experience has been that as of 7.0.3, you can't kill postgres with too many queries/too much work, as long as you're configured for enough back ends to handle the load. Note that the current max of 1024 backends is only a problem for scaling onto truly huge hardware, like n-way ultrasparc or SGI boxen.
On my test boxes, postgresql performance is about the same as you add users. Each user runs slower individually, since you're spreading the database thinner, but the number of responses per second stays the same, from 1 to about 700 simo connects.
Mysql is MUCH faster at simple queries, or with one or two users. This is quickly overcome when used in a real world environment with mixed reads/writes, where postgresql's non-blocking autotransactions allow hundred of users to read and write to the same table at the same time with reliability and data integrity.
My experience has been that MySQL is the one that just stops under load, but I mean PARALLEL load, not high load from one task/thread. Postgresql has never gone down under load for me, but in the past (6.5.3 and before) I have made it unresponsive for minutes at a time with goofy queries. I've never killed 7.0.3 once, period (except with the kill command :) with gunky queries, or high parallel load, but I have slowed it down to near unresponsiveness a few times under extreme loads (>500 simo connections.)
I grew up with non-transactional databases, that had near useless joins/unions/intersects that were so slow, we did everything with temporary tables, much like how you pretty much have to with most mysql stuff, since it just doesn't have most of the features of a higher end dbms. I don't mind working around missing features in it, but I find that after writing the code for building temp tables in mysql, I could have one sql line, in the database as a view, in postgresql, and my app just has a "select * from view_name where..." statement in it. If the data changes, I don't have to rewrite a ton of mysql queries and more, just one view in postgres.
After a vacuum analyze on the table, and with judicious use of indexes, I find the performance to be similar under most situations (i.e. 20+page views a second with either database) that I don't really notice a difference in performance anymore.