You can buy domain addresses from companies called registrars. ICANN
is the regulatory body for registrars and the top level domains (.com,
.org, .net, etc). For other "local" domains such as "co.uk" there are
other regulators and registrars, although most registrars will allow
you to purchase from a vast amount of domains.
The list of accredited registrars is probably the best place to start
for a company that will sell you a domain.
List of accredited registrars
I personally use UKREG because of quality of service and price.
To verify if a domain is available you need to make use of a WHOIS
server. If a domain is not found on there, it generally means that
it's available. But because there are delays for registrating domains,
you cannot be sure until you apply and get a confirmation that the
domain has been approved.
In general the registrar you buy from will have a tool to verify the
availability of a domain before you buy it.
For example if you go to UKREG, there's a search box on the right of
the main page where you can just type a domain name and then search.
If the domain is taken it will also query alternatives and bring back
For web hosting, which is different to domain purchasing you need to
use a hosting company. Most hosting companies can also manage your
domain. Fasthosts is the same company as UKREG and is the hosting arm
of it. Therefore the two services are tightly integrated.
Domain availability checker
If you require anymore information, please do not hesitate to ask.