I use DreamHost for registration and hosting. They are hands down the best shared hosting company (in terms of customer service, industry experience, and value/features), and they're also within $1 of the best prices of any major registrars, and each time you sign up you get a year's free domain registration (e.g. I had a 2-year-old old account that I recently reactivated—another free domain registration).
Aside from how awesome DreamHost is, I just don't like most major domain registrars. DreamHost is a registrar in their own right, but they don't act like domain squatters or work with domain squatters/speculators. You will never click on a Google search result and see a big "Buy this domain from DreamHost for Only $16.99" or "Related Searches: Car Insurance, Pain Medication, Cheap Software..." page in place of the website that it's supposed to be.
I don't need a registrar to snatch up my domain name, that I've taken the time to build the reputation of and generate traffic to, and exploit it as their personal billboard and make my site look like it's owned by spammers or typo-squatters. It's just a very scummy practice that I'd rather not support.
Unless you're looking for a rare TLD that isn't offered by your web host, I would just go with the web host. They're typically more honest/less sleazy, even if they do charge an extra $0.50 a year. Plus, the convenience of being able to manage everything in one place (and the free registration thrown in at most places) more than makes up for the extra $5 you spend over 10 years.