Most web hosting plans offer a free domain name registration for new users. People usually take advantage of that feature since it enables them to save some money while keeping both the domain name and the hosting plan with the same company, which should make the site management more efficient.
Well, that is not quite true. In fact it is just the opposite, having your domain name registered with your hosting company might be a really bad idea. Over the years it is very likely that you will need or want to change your web host, you might find a more interesting plan somewhere else or you might need to switch to a dedicated server due to increasing traffic. If your hosting company is also managing your domain name they might give you a headache before performing the required changes on the nameservers (i.e. making the domain point to the new host).
The solution for this problem is to keep all your domains names registered with a reliable registrar (GoDaddy and eNom are good ones) while having a separated company to take care of the web hosting. Apart from avoiding trouble with nameserver changes and domain transfers this method will also be more efficient to manage your portfolio of domain names.