Oky...
When you purchase a 'domain' you're basically paying for the priviledge of having your name registered in a global database.
That's it. Or at least, that used to be it. To register a domain you need to provide *two* DNS servers which tell that registry what ip address to resolve your domain into.
You used to have to run those two servers yourself. You used to have to register with internic, who changed their name to ICANN. ICANN maintain a list of 'authorised domain registars'. These *used* to be just internic, and a bunch of country specific people - So, if you wanted a domain in the .uk directory you'd have to talk to the maintainer of the .uk repository.
These days they've opened up the registration process and you can (given enough money, connections etc) open up shop as a registrar yourself. When someone signs up with you, you'll submit the name they signed up for with ICANN (for a fee) and charge the consumer fee+markup. Most often you'll provide the name services required to register the domain aswell... Here's where you get the value-added services. If I register slickwilly.com with register.com they'll submit my entry to ICANN (who may or may not approve it) and they'll tell ICANN that to find the ip address for slickwilly.com goto register.com's DNS machines. They'll ask me what my IP is, and add it into their DNS.
They'll charge me $35 to do that.
Should I want to change my ip address I'll have to go to register.com and tell their DNS machines that it's changed (they have a nice web form for that).
This is your case 1.
If my IP address changes dynamically I'd have to go and change my dns information on register.com every time that happened, and between the time I did that and my address had changed people wouldn't be able to get to my site. (Some poor sucker who inherited my ip address would start seeing lots of web traffic, ftp requests, ssh attempts and suchlike hitting their box :P)
So.. a bunch of companies sprang up who deal with that - dyndns, dhs.com, x(something) I forget. They essentially do the same as above, but give you a bit of software which allows your machine to tell them when your ip address has changed, and it'll automatically update the DNS servers which they run (and which your domain points to) with your new ip address.
This is *essential* if you have dynamic ip addresses as your DNS servers (which ICANN knows about) have to be static.
Case 2: is like case 1, but instead of services being located on your home computer they're located on someone *elses* computer out there on the internet somewhere. Most often the services we're talking about are web services. Sometimes things like game servers (Quake, Unreal, NeverWinter Nights). Sometimes Muds... There are servers out there for allsorts.
The important thing here is that the dns entry is maintained by your hosting company, using their dns servers and points to their web/game servers. None of this traffic ever hits your home machine and life is good. You're paying by the month for the services (web/game/mud) and the traffic generated by them. You'll find that your basement $10 monthly bill will *rocket* if you start generating tons of traffic - you're normally good for between 1 and 5 gig of traffic a month before they complain.
Port forwarding is provided (mostly by the dynamic dns people) to get around port 80 blocking by cable companies. It allows you to do something like this :
I have slickwilly.com. I want to run a webserver on my cable modem, but they block port 80.
I assign
www.slickwilly.com to forward traffic sent to it to myipaddress:81. I then run my webserver on my linux box at home on port 81, and people can hit
www.silickwilly.com and it'll actually return a web page - they don't have to put the nasty :81 on the end..
Bear in mind, that if you're on a cable modem your terms of service probably prohibit the use of servers (read : web server) and doing this could cause them to whinge at you.
Note: I don't have slickwilly.com. If it's available, you're more than welcome to it
Hope this helped.
Slick.