A few years back, the choice was between raw speed, in which case you chose MySQL, and features and reliability, in which case you chose PostgreSQL. (If you needed speed, features, and reliability, you sold your soul and bought a commercial RDBMS.)
Since then, MySQL has added features, and PostgreSQL has improved its speed significantly, so they’re considerably closer. I don’t know precisely how close they are, since back in the MySQL 3 days I made the choice to use PostgreSQL for personal projects (because it had triggers, stored procedures, and constraints), and all the jobs I’ve worked at since have had proprietary databases.
One place you really need to be aware of this difference, though, is in reference material. If you buy a MySQL book, make sure it covers MySQL 5. Because of MySQL’s former feature limitations, a lot of things like data integrity checks had to be done in the application rather than in the database. That’s a really poor architectural choice, since verifying data integrity is what databases are built to do, but in older versions of MySQL there was simply no alternative.