+ 1and1.com - Cheap, but not terribly responsive.
+ GoDaddy - I don't like their constant upsell techniques and have clients who've been confused enough to accidentally purchase all sorts of unnecessary extras.
+ ThinkHost - I dig their green angle.
+ DreamHost - This is who I've finally settled upon, because they allow an unlimited number of domains, subdomains, and databases to their most basic account. They're affordable, I've found them responsive and upfront when there are outages, their system is pretty easy to use. And when dealing with clients, I can easily map a client's DreamHost account to mine, so I can access their account without seeing their private billing info.
For domain registrars, I've used:
+ Network Solutions - Way back in the day, I used to use them. Then they went through their shady period and I haven't gone back.
+ GoDaddy - Same reasons as above; I dislike their upsell techniques.
+ NameCheap - This is who I use now. No frills a fairly cheap. They aren't the cheapest, and don't offer discounts for purchasing multiple years, but I like their straight-forward services.
DreamHost also offers domain registrar services, though I haven't used them because I already have my accounts set up on NameCheap.