Establish your requirements, i.e., Linux, Apache 2.4+, PHP 5.4+, MySQL 5.6+, the preferred control panel (e.g., cPanel) and storage and bandwidth requirements. Remember to allocate for log files, databases, e-mail (attachments) and growth.
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. cPanel is the standard bearer for Linux systems and Plesk for Windows systems. Customized control panels may or may not be satisfactory.
Know how much CPU time/RAM you need. If you need a lot of processing power (like WordPress and other CMS's), this will be a major factor. These, however, are usually specified only for VPS/dedicated accounts and are 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).
(from SitePoint's "EastCoast") "Eliminate anonymous companies - if a hosting company doesn't have a full office address and company registration details visible on their site, it's often down to the amateur status of the operator, which is unlikely to be consistent with longevity and reliability."
(also from SitePoint's "EastCoast") "Eliminate new companies - hosting has a very high fail rate because of the low barriers to entry. If a company makes it through it's first 5 years then it's likely it's jumped a few hurdles and knows what it's doing sufficiently to have made a viable business. Not all new companies are cowboys, but the percentage is high enough that it's not worth the risk of being the one to find out the hard way, when there are plenty other options."
Eliminate companies which do not tell you exactly what you're getting for your money, i.e., the Control Panel, the storage, the bandwidth (traffic), the versions of the main daemons (Apache, PHP and MySQL), the SSL and dedicated IP charges, etc. That's where knowing your requirements comes in strongly! Ask your shortlist about their upgrade process.
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 and cost of dedicated 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: "Just Do It!"
I have "been there, done that" (all too frequently in the past).