It's not always practical or convenient to use DNS to map your machine names to IP addresses, especially in cloud infrastructures, where those addresses may change all the time. However, if you use entries in the /etc/hosts file instead, you then have the problem of how to distribute those entries to all machines and keep them up to date.
Here's a better way to do it: Puppet's host resource type controls a single /etc/hosts entry, and you can use this to easily map a hostname to an IP address across your whole network. For example, if all your machines need to know the address of the main database server, you can manage it with a host resource.