DNS or Domain Name System is very simply a way of making the internet simpler for the end-user. It translates names to numbers. The best analogy I can think of is that it's like a phonebook. You can look-up a number using a name. In the computing world, this 'number' would be a computer's unique identifier, called an IP address. The name would be what we call a domain name and usually describes what the machine's purpose is. For example, www.example.com could represent 192.168.1.10.
Why are they really cool?
Think about all the sites you visit in a day. Would you remember all of those numerical addresses? Probably not, but you could remember a domain name. Now put yourself in the shoes of someone having to manage large infrastructure.
Let's assume you need to make a change to the addressing scheme. Without DNS you might have to edit the respective addresses on all machines that communicate. A DNS server being implemented make a simple file entry be all that was needed. The domain name used would resolve to a different address and potentially scale to thousands of machines, saving hours and hours of work. You can even split your domain down even further to create hierarchy, such as www.blog.example.com
How can I use it?
You can pretty much use a domain/hostname in place of any IP address field. It will query a local DNS server for what we call an "authoritative" response, which simply means it's trusted; it comes from the local network. In essence, it is comparable to using a variable in infrastructure that gives you a higher degree of control.
There are other uses also, namely something we call load balancing. Noticing slow traffic or simply want redundancy? DNS would let you give a set of IPs the same name so that traffic is sent to them in a round-robin style. Let's say you have 5 servers, each would get a 5th of what they would without that which can increase performance and stability in a huge way.
Coming to sysadmins and registrars near you...