Currently, I am using Dreamhost and as it has been mentioned before it does have outages but my blog and other simple sites do not have a lot of traffic to deal with so it is ok for the time being.
For any sort of professional deployment, I am using slicehost's VPS. Linode is also a good one. However, with slicehost I built the entire server myself so it gives you a fine grained control which I miss with dreamhost.
* better security (hundreds of random customers can't write a PHP script to read my db config settings)
* better uptime (if one of those hundreds (thousands?) of websites gets slammed with traffic, my sites don't go down.)
* i can run as many websites as I want - same price
* it's handy to use ssh/rsync as a dropbox for distributing large files
* I get my own IP address, so if one of those hundred other customers sends spam or is hacked, my IP address isn't blacklisted.
2 - dedicated server managed by a small hosting company in a solid IDC for my money focused projects. Since I bought the server 4 years ago, I'll stick with it until it dies. Then maybe rent from a linode or slicehost, etc...