To expand on the answers given so far, I'll hop in here. You put machines in the DMZ that must be accessible to the outside world. Since these machines must accept some type of connection initiated from the outside, you want to put them in a position where a vulnerability discovered for whatever service you are running doesn't cause a loss of the entire network. Once a machine is placed in the DMZ, you tightly control who is allowed access, and only allow traffic on the ports needed for that server to function.
For example, say you have an Apache server running, and a remote root vulnerability is discovered. If you don't find out about it the same day as attackers do, they might successfully attack and compromise that server. You must allow port 80 traffic to the server, because that's the server's job. If your server is in the DMZ, can take over the machine, but they cannot use that machine as a path to attack other machines in your internal network (since you should have extremely tight restrictions on what DMZ machines can access the internal network - usually no DMZ to internal network traffic is permitted at all). If that server was on the internal network instead, once they got control of the machine the attackers would have unlimited access to all machines on the internal network. You wouldn't be able to ferret them out by the time you got to work the next morning.
The downside to putting a machine on a DMZ is that you must physically access the machine to work on it, if you are following widely accepted firewalling standards. I don't see this as a disadvantage, but many do.
Now, if you have a home/SOHO "router" (SMC/Linksys/whatever), you don't have the controls that a standard firewall and router setup would give you. All home/SOHO routers with which I am familiar define the DMZ as the port where all externally initiated traffic goes if there isn't a rule already in place directing it to another machine, or something close to those lines. The problem with this is that you must make all ports on a server accessible when you hook it up to the DMZ port. Furthermore, most home/SOHO routers that do this don't actually stop that machine from accessing the internal network, so you really don't get any protection by using that port.
Hope that is clear and helps, but I had trouble writing it where I felt it was understandable, so I may have made things cloudier or left something out. Let me know if you have any more questions.
RagManX