The first thing you need to check when choosing any hosting service is the customer service you will get in case of any disaster or disruption. Some of the hosting companies have live chat and some have very documentation.
I have found NameCheap.com, bluehost.com and hostgator.com to be the best web hosting companies.
If you want something cheap but reliable you can go for NameCheap.com
For professional service, you can choose bluehost.com and hostgator. You will find shared and dedicated servers to meet your needs.
Also they come with email service and easy to use cpanel.