Recently I have gone through the process of selecting a web hosting company for one of my clients.  There are a lot of options out there and a number things you need to be cautious about.  I will go over some of the decision points and questions you will want to ask a company before signing a contract. 

The first thing you need to do is define the features that make up you site.  Is it made up purely of static content or does not use a database?  If that is the case then you can choose just about any hosting company that supports your favorite development platform (ASP.NET, PHP, etc.).

If you require a database for your application determining how much control over the database and how much space is required are you next tasks.  Many hosting service will offer either MySQL or a limited access SQL Server.  This will support small databases with simple CRUD requirements.

If you require full control over the database and need features of the server such as the operating server scheduler you are now looking at leasing a dedicated server.  This will significantly increase your cost per month, but once you get to this level it is either a dedicated server or a cloud service such as Azure.

One thing that I have found is that if you are getting a dedicated server from a hosting company often your best bet is to purchase your own SQL Server license instead of paying the monthly charges for the hosting service to provide them.  The average I have seen is about $275 per month.  Even if you pay $4000 for a license it will pay for itself in just over a year.

In the end there aren’t any easy answers, but hopefully some of the guidelines above can help you find the right solution for your hosting needs.