A domain name can be purchased from any domain registrar. Many web hosts also serve as registrars, however, you have the option of getting your hosting and domain from different companies.
A good registrar will be frontdreams. Acquiring your domain name from your hosting provider, on the other hand, makes setting up your website much easier.