Buying a domain name (in the strictest sense) gives you only the domain name - no email, no website etc.
Some registrars will bundle some 'free' extras (such as am email box etc), but I try to keep the hosting aspect (email, websites etc) separate from the domain registration where possible.
You can buy a domain name from any registrar and you can point it to any hosting service - you don't have to use the same for both.
Shop around on the domain registrar prices too - they are not all equal and some till do their best to lock you in to stupid fees.
There should not be a cost to transfer from one registrar to another as far as I know - I've never had to pay one.