La cuestión no es ver quien es mejor que otro... Sino saber para que tipo de aplicación vamos a utilizar la base de datos... Yo NUNCA he utilizado PostgreSQL pero sí sé más o menos la teoría detrás de éste...
Si tu aplicación se va a basar básicamente en sólo hacer SELECTS y UPDATES, pues el MySQL te puede servir totalmente: no es malo, sino que le faltan cosas que pueden ayudar mucho a reducir código de programación...
Algunas cosas que faltan en MySQL, pero que PostgreSQL tiene:
Llaves foráneas: Y aunque he leido que MySQL las soporta en algunas tablas, no están soportadas "del todo"....
Subqueries: Uffff... Pueden salvar mucho código de programación, pero creo que no estarán implementadas hasta MySQL 4.1, que se encuentra en beta.
Stored Procedures: Como dije, nunca he trabajado con PostgreSQL, pero esto parece interesante, pues podes resolver problemas complejos en la base de datos, y no en el código, utilizando lenguajes como Perl o C.
Problemas con fechas: Aunque he trabajado con fechas en MySQL y no he tenido problemas, existen varias cosas que fallan. Por ejemplo, podes entrar fechas inválidas y MySQL puede que no las valide. 000-00-00, y ningún año tiene como mes o día el 00. También creo que podes entrar el 31 para cualquier mes.. jeejej
Bueno, y ahora qué hay de bueno sobre el SQL?
Puede ser más sencillo utilizarlo en algunos casos, y es muy aceptado en Internet.
Si tu aplicación sólo necesita guardar datos, MySQL es perfecto para esa tarea.
Corre nativamente en Windows, aunque PostgreSQL puede correr con esa cosa diske Cygwin...
Hay otras más cosas, pero ni idea... Para mí MySQL me ha servidor para lo que he tenido que trabajar, pero PostgreSQL puede ser una solución para algo más empresarial y complicado...