I'll echo what TechnoBear and ParkinT have said.
Then, I've got an "unlimited" account (for a client with heavy storage and bandwidth needs) with WebHostingBuzz which has been fantastic! No problems whatsoever over a couple of years already (which led me to a "specialist account" [Joomla requires a LOT of CPU time]) and am about to get a dedi. WMB is not "cheap" - they're inexpensive! Have a look at their shared hosting plans at http://www.webhostingbuzz.com/web-hosting.php.
I always recommend that a host search begin with requirements (TB's post) but goes through many stages:
[indent]I offer my common advice:
- Establish your requirements, i.e., Linux, Apache 2.4+, PHP 5.2+, MySQL 5+ and storage and bandwidth requirements. Remember to allocate for log files, databases, e-mail (attachments) and growth.
1a. (added) If you're looking for a VPS or dedicated server, remember to ask what the host's managed services provide. Remember, a non-managed host must be monitored by you 24/7/365!
Know what control panels you are willing to use, i.e., WHM/cPanel. cPanel is the standard bearer for Linux systems and Plesk for Windows systems.
Know how much CPU time/RAM you need. If you need a lot of processing power (like Zoomla and other CMS's), this will be a major factor. These, however, are usually specified only for VPS/dedicated accounts and automatically throttled for shared/reseller accounts.
Know your target (the Internet is fast but some latency could hurt so the closer your server to your target audience the better) location and try to host as close to your target as possible.
SEARCH (using the above parameters) recording each feasible host as well how well it satisfies your requirements and budget. Spreadsheets are good for this as you can assign weighting to the different requirements and how well they were met to generate numerical scores.
Create a shortlist based on the database you've created in step 5 then SEARCH for comments about the host (avoiding obvious shills and websites which advertise for that host).
The last step (other than selection) is to contact each shortlisted host with a question (I've used .htaccess and mod_rewrite availability, which services are managed by the host, the availability of IP addresses - you will require one for each SSL you use - or ask to test proprietary control panels - they may make life too difficult for you) and record the response time and your level of satisfaction with the response.
Finally, you'll have enough information to make an intelligent selection.
Been there, done that (all too frequently in the past).[/indent]