I use 1and1.com for all my hosting needs. I have been around the block a bit and stopped at 1and1 once I realized they had good customer service and reasonable prices plus severs were speedy. I get my domains and hosting from them to keep things simple to manage. For email, I rely on Gmail account that is setup with my personal domains from that 1and1 account. Gmail has some of the best spam filters and some of the best features for free email... even if Google is considered evil. It will most likely beat any hosting service email offering in features and speed.
I had a client who was using Godaddy hosting and I hated it. It was slow and hard to get to the parameters I wanted to change on the server side. It took me ages to setup a Joomla site for the client because of the sluggishness and the client complained about the speed too on the front-end. I had another friend that also noticed this with his Godaddy hosting. So, I have learned that the most hyped is not always the best bet in my humble opinion.
I've been using BlueHost for about three years now - that is after trying a LOT of other hosting and domain service providers. BlueHost has everything you can ask for in a host, it is slightly expensive than many other services out there, but its good.
I've used GoDaddy, the only good thing about it is that its cheaper, but the panel and service is a model for what you SHOULDN'T do when you develop a custom control panel, its a user interface hazard to say the least.
You have no guarantee of service in free hosting, I was using Freebee hosting for a long time, then they shutdown suddenly, they were kind enough to give a month's notice, but most free hosts don't even do that, sometimes they might even hold your files hostage for buying premium service from them.