A domain name is just a pointer or set of pointers. It determines where you should look if you want the website, FTP site or email associated with a particular domain.
In order to setup a website you need somewhere permanently connected to the internet (a fast connection) and ideally a domain name to point it to.
Hosting costs from £100 per year (for a site that is static page, maybe a feedback form) to £ 1200 per year for a site that uses lots of bandwidth and lots of the processor power of the server.
Imagine you have a server and it has the IP address 220.127.116.11. If yours is the only website that exists on that server then typing http://18.104.22.168 into any browser will show your website. It's not very user friendly so you can get a domain name e.g. mydomain.co.uk and point www for that domain to the IP address (an 'A' record). This means that when you type: http://www.mydomain.co.uk into the browser you get your website. As an aside, it also means you can tell the web server to deliver different websites depending on the domain.
There are several varieties of email:
The most common setup is that the domain is setup to forward the mail to a Pop 3 mail box and the user uses a client like Outlook or Outlook Express to collect the mail. This has three parties involved:
There is often a "Catch All" mail box for the domain that enables all mail to be sent to one address.
All mail to be sent to the corporate server and all employees collect it from there using various protocols. Pop 3, Exchange. This tends to be applicable to companies of 10 + users. The server costs £5K and needs to be maintained, backed up and supported. It also delivers many other benefits (like shared calendars, file storage and backup, shared printers..)