For domain name registration, I use
Namecheap, which is an eNom reseller. One advantage of registering with eNom is that they have their own name servers (DNS), which are geographically dispersed. It's very easy to manage DNS host records through Namecheap's web interface, and they're updated within minutes (not days or hours) due to a low 5 minute TTL on all records. Namecheap also offers web and email hosting, but I've never used it.
As a registrar, GoDaddy has a pretty abysmal track record of shutting down domains at _anyone's_ request, without investigating the situation. Avoid them at all costs. Seriously.
For shared web hosting,
HostGator has been great. Not the very cheapest, but they've been extremely reliable and always have tech support available. Fairly typical cPanel control over web, ftp and email hosting, but it's kept up to date and it just works.
One thing I recently found when moving a large number of email accounts to HostGator is that you can set them up all at once in cPanel by creating a CSV or XLS file containing the email addresses, passwords and quotas. And you can do the same thing with email forwarders (aliases). Takes just minutes to set up as many accounts as you like.