A domain name is your address on the internet. While you can start out by building your first web site on a "free" hosting account without having your own domain (where you effectively have a folder or sub-domain within someone else's domain), if you are setting up a business site and want it to be taken seriously you will need your own.
The domain system works because there is a hierarchy of organisations involved in handling their allocation to the end user (ie you). The highest authority is called ICANN and their responsibility is controlling which top level domains exist (.com, .net. .au, .us, etc) and who the authority is for each. In the case of the two letter top level domains (TLDs) the domain is allocated to a specific country (eg. .us to the USA, .au to Australia, .tv to Tuvala etc) and it is up to that country as to who they want as the authority administering the domain and what restrictions they want to place on its use (eg. the .au domain is under the control of the Australian Domain Authority AUDA and domains within the TLD are only available to Australians). The TLDs having between three and seven letters in their name are for international use and each has a company that is the authority for that TLD (eg. Verisign is the authority for .com domains).
The authority for each TLD is responsible for who is allowed to be a Domain Registrar who can lease out the domains within that particular TLD (or in the case of some country specific TLDs where the second level domains are predefined (eg. in Australia the second level domains .com.au and .net.au are available to businesses). If you want to obtain a domain within a particular top or second level domain then the purchase needs to be made through a domain registrar who is allowed by the appropriate domain authority to deal in domains in that particular domain space. The purchase doesn't need to be made directly from a domain registrar though as they can appoint resellers who they authorise to sell domains through them.
If you get your domain from a reseller then they have to pay the domain registrar a fee for the domain. The reason that resellers can exist and in some cases provide domains at a cheaper price than if you go direct to the registrar is that because they are obtaining lots of domains from the registrar they get a bulk discount. Regardless of whether you get your domain from a reseller or directly from the registrar, a portion of the fee goes to the domain authority.
Domain registrars may be registered to handle several different top level domains and resellers can sign up with more than one domain registrar so as to be able to deal in more top level domains.
Assuming that you are going to get web hosting somewhere, the only thing you really need with your domain registration is the ability to update the nameservers for the domain to point to where you have your hosting so as to be able to link the two together. All the other options that the registrar or reseller offers are only useful if you are setting up the domain in advance of having a web site to attach to it. This means that the biggest factor to consider in choosing who to get your domain from is the price they charge.
Depending on what top level domain the domain you want is in, you may or may not have a choice of how long you can lease it for in one go. Some domains have a strict renewal period (eg. all .au domains can only be leased for two years at a time) while others give more options (eg. .com can be leased for between one and ten years at a time).
Often hosting providers will offer to register your domain for you as well as providing the hosting. In these cases the hosting provider is a domain registrar or reseller as a side business to their hosting. Similarly some domain registrars offer hosting as a side business.
When obtaining your domain you can either get it from a registrar or reseller of your choice and then update the nameservers to point to your hosting or take up the offer from your hosting provider to get it through them. If you get your domain from your hosting provider then you need to make sure that the domain is registered to you and not to them. The other potential problem with getting your domain from the hosting provider is that if anything goes wrong with your hosting then it will be more difficult to get your site set up elsewhere. If you have your domain separate from the hosting and need to move the hosting then you don't need to move the domains and just need to update the nameservers to point to the new hosting.
One thing I advise against is obtaining your hosting from a domain registrar. Where their main business is domains and hosting is only a side business the facilities they give you for maintaining your hosting will be relatively primitive compared to what a proper hosting provider would have available. The other way around isn't so bad since not having a full featured domain control panel is not so important when you have the domain attached to web hosting