Hostwinds remains a user-friendly option for registration and hosting, even if you're transferring from another service. It lists out all the extensions to create your domain name with prices to register, transfer, or renew for each extension, unlike some services that bury these within the website. You simply enter the domain name you want and check the availability, and can theoretically get going in a few clicks (if it's available or taken). It will then tell you if it is available or taken. They've also got live chat, email, and phone technical support before purchase too, which is rather rare.
SnapNames is a web domain name marketplace - meaning that they only deal specifically with domains that are currently owned by somebody else. They offer daily and premium auctions, private brokerage of domains, and buy-it-now listings for buying and selling domain names, including over 30 million domain names that aren't all, as you'll find on some services, exorbitant. They have over three million customers, including a significant number of small businesses, which is worth it.
My personal preference is to register the name directly with a domain name registrar rather than through my web host. I've heard stories, in the past, of less-than-reputable web hosts that registered the domain under their own name, making them the owner of the domain rather than you (although I don't know if such web hosts still exist today). Registering direct with a domain name registrar allows me to make sure that I am registered as the owner, the administrative and technical contacts. Being the owner is vital — if someone else places himself as the owner (such as your web host), he can always decide to charge you some exorbitant fee for the use of the name later, and there is little you can do. The various other contacts are less vital, but may still play important roles, depending on your registrar. For example, for some registrars, the administrative contact's approval is required before a domain name is transferred out of a web host (or at least, it used to be). If he/she cannot be contacted, the technical contact is used.
FatCow has one of the cheapest offers for an entire website package, with hosting and domain names for just thirty cents during your first month. After, that the price is $10.99 a month or $59.88 for the whole year, in a shared hosting package with enough bandwidth for most people. This is a limited promotion I found, but they still sell fairly well-priced packages (their "fat" options come with extras like marketing and advertising credits), and will gladly offer you perks for transferring your domains and hosting to them.
Domain names can be used in a number of ways. Direct visitors to your website’s home page or use complementary domains to send them to specific areas of your website ( e.g. yourcompany.jobs for a careers page). Or, forward a custom domain to an existing social media account, like your Twitter profile or Periscope channel. With a domain name you can even set up custom email addresses like firstname.lastname@example.org, which can be used to conduct business or communicate with your followers. More.