CTEs are found in SQL Server as well:
http://technet.microsoft.com/en-us/library/ms190766(v=sql.10...
http://technet.microsoft.com/en-us/library/ms190766(v=sql.10...
In SQL Server, aside from recursion, CTEs are purely syntactic sugar and thus a tool for organizing code. Whereas in Postgres, due to the optimization boundary, they are a tool for query tuning. If you rewrite a query in Postgres using CTEs just to clean it up, you are doing it wrong, since the CTEs will also affect the planner.