When computers communicate over the Internet, the send messages to each other in a manner much like the postal service and just like your local mail man, the computer needs to know which address to send your information to - this takes the form of an IP Address and will look something like "216.239.59.99".
For most people, numbers like that mean very little and if you had to type the IP Address for every website you visit the web would be very difficult to use, not to mention the practical issues of having to remember every single IP Address you visit. To solve this problem the Domain Name System (DNS) was set up and is one of the main services that makes the Web possible.
DNS is the process of transforming something that you understand - www.google.com - into something that the computer understands - in this case the IP Address 216.239.59.99 used to access the search engine on the main Google page. DNS works like a large, distributed database and there are literally millions of DNS servers that take part in the system although there are a small number of "root servers" at the very top handling the .com, .org and .net domains and these root servers handle hundreds of thousands of queries every second of the day.
In an attempt to keep the load down on the root servers, most ISP's will run local DNS servers that will store a copy of the IP Addresses for the sites that their customers visit. A good example of this are the millions of people that use Google every day. If they had to go to the root servers to get the IP Address for www.google.com every time they wanted to do a search, this traffic would easily bring the servers down and the Web along with it but if the ISP runs a local DNS server storing all the IP Addresses of the popular sites, the local server can return the result instead and make the whole service quicker and less congested for everyone.
While DNS sounds like a truly great thing, it can be quite difficult to set up and is a lot of hassle if you just want people to connect to your home web server or gaming server so rather than go to the trouble, there are many companies that will do this for you for free by offering a service known as "Dynamic DNS". This works by running a small program on your home machine that will discover your IP Address every so often or even every time you dial up and will then send it to the company that maintains the Dynamic DNS. Once this information has been received from your computer, the company will then update automatically update their DNS servers on the spot so that any changes to your IP Address are immediately made known to anyone trying to connect to you.
This way, your "DNS Name" such as "johndoe.dynamic-dns.com" will never change but the IP Address that it maps to can change as often as required and since this process takes place behind the scenes, so long as you are connected to the Internet your computer will always be available to anyone trying to connect to it using your DNS name.