Do a search for this very thing on this discussion board, we've discussed it to death. But, the quick recap:
mysql is built for fast manipulation of a moderately static dataset, i.e. managed content is a good area for mysql.
postgresl is build for features, and plenty of them. It implements most of the SQL92 standard, which most of us will hopefully never have to read or anything, it's a tome.
If you want to build a database to keep track of the distances between points or that needs transactions, or triggers, or any of the things databases like Oracle supply, Mysql will leave you disappointed. If you need to handle hundreds of simultaneous transactions a minute, you need postgresql or maybe something bigger like db2 or oracle or sybase or informix.
If you want a simple database to just toss data into, and it doesn't need to be super fast, then either is a fine choice, worth the price of admission (installation) and capable of handling the job
If you know a lot of SQL, then mysql will seem like a throw back to 1982 model databases that didn't have unions and sub selects, which isn't all that bad. Temporary tables can be used to solve most of the world's (programming) problems. If you know a lot of SQL and want to do things like select yada from table except (select bada from table2); then use postgresql.