Speaking only to the differences between PostgreSQL and SQL Server:
1. "Live" clustered indexes
2. Query Parallelism
3. A richer API for data partitioning and _arguably_ a better query optimizer for partitioned data. 9.1 sees some wonderful improvements to the optimizer in this regard and I'll be poking at those very features in the coming months.
SQL Server has query hints, but I strongly agree with the PostgreSQL's team stance on them; I'm glad they avoid them.
As far as special index types: If you need a specialized index type, and nobody supports it, you're dramatically, drastically, fantastically more likely to implement it/find someone to implement it in PostgreSQL than any commercial engine.
On other side:
1. PostgreSQL and MySQL are catching up (for example: Table elimination)
2. You can always throw saved money in hardware. 40 thousands per core (Oracle) - is ridiculous.
As for Materialzed Views, there's some options there currently, though it looks like native support would be a lot nicer: http://tech.jonathangardner.net/wiki/PostgreSQL/Materialized...