I have used a variety of web hosts over the years for different websites that I have created or helped with: HalfpriceHosting, HostDime, Lunarpages, SliceHost, Mosso, Amazon EC2 and DreamHost. Currently I only use three of those hosts: Mosso, Amazon EC2, and DreamHost.
Shared Hosting: DreamHost
If you are paying $10 or less per month for hosting, then you deserve whatever junk you get. $10 a month just doesn't buy you the right to complain if the server goes down or your e-mail fails to be delivered. Consider how much of your time $10/month buys: no more than an hour. Then consider how much time keeping your server running takes the hosting company: not much, but if you add in a support ticket or two per month then it's pretty sizable.
I use and recommend DreamHost, but only under certain conditions:
- Get two Private Servers The DreamHost private servers are as cheap as $30/month (for anything non-trivial you need both a webserver PS and database server PS) and provide decent performance.
- Use the Google Apps for my Domain for your e-mail. Shared host (including DreamHost) e-mail is unreliable. GMail is awesome.
Why DreamHost vs. anyone else. Basically it's for their advanced features like unlimited mail/database/domains and secure shell access and svn support that make it more worthwhile than just another ftp only host. Also, hosting is a business where "economies of scale" are important. Dreamhost is in the top 20 hosts worldwide and are one of the few companies in that list that provides the features they do at the price they do.
Managed Large Scale Hosting: Mosso
Mosso provides decent performance and a scalable solution, but there are some drawbacks. First, the good parts: if your DreamHost site gets a lot of traffic all of a sudden, it will fail. Sorry. Maybe you can move your private server resources higher if you are paying attention, but if you aren't...you're toast. Mosso can handle traffic like that...They also do a better job with e-mail so you don't have to use GMail. And their support is amazing. When you call their support you get an intelligent helpful response (most of the time, anyway).
What's not to like? Well, it's scalable but not super high performance. Initial page load times are quite long for some reason. There is no shell access. This is a deal breaker for me. I only use Mosso for a few clients whose sites are relatively static and who demand (and pay for) the ability to have on-call support.
Unmanaged Large Scale Hosting: Amazon EC2 or Slicehost or MediaTemple
For low cost high performance servers, I have really been enjoying Amazon EC2. Slicehost and Media Temple Dedicated Virtual are in the same category only because you have to do the management yourself, but they are not as cheap as Amazon EC2. EC2 is somewhat notorious for spontaneously going offline, which is why I only use EC2 for machines where a little bit of downtime is acceptable. With Elastic IP addresses and Elastic Block Storage it's now much easier to recover from an EC2 server going offline (especially if you script the process of bringing it back online...) but not totally easy. Most any mail sent fro EC2 will be marked as spam due to the dynamic nature of their IP addresses, so you need to have an external SMTP relay (usually a paid service...I just use GMail).
SliceHost and MediaTemple are more expensive, but also aren't going to "disappear" the same way that an EC2 instance might. MediaTemple has a very nice feature to be able to upgrade or downgrade between the different Dedicated Virtual servers which is handy to handle loads and still be able to reduce costs if traffic to your site varies wildly and is predictable (e.g. holiday rush, a website for a specific event, a theater or concert hall where ticket sales cause traffic spikes).
Hosting on a Dedicated Server
Don't do it. Just get a VPS. VPS is cheaper and easier to provision which makes physical hardware an odd commodity to own at this point. (see above)
Summary Recommendation on Hosting
In summary - all three hosting solutions that I use/recommend have their shortcomings. When I build a new site I consider these problems and make my choice based on the solution that best fits the new site I'm about to launch.
- Low traffic with limited e-mail: DreamHost
- Low maintenance with demand for support: [Mosso](http://www.mosso.com/)
- Strong technical skills, but want performance and expandability: Amazon EC2
- More decent VPS options that are maybe cheaper and less flexible: MediaTemple or Slicehost