The hosts file is intended to be a bit of a poorman's DNS system. For small networks a complete DNS is often not needed, but as the number of nodes grow it is often hard to maintain hosts files across a number of machines, that is when a complete DNS system is requied. Systems using the internet almost always use DNS because, let's face it, who wants to have a file with millions of hosts in it?

Also the hosts file is useful to add in quick aliases for machines instead of calling up the network administrator to ask to have a name assigned to a machine.

I know this information applies to GNU's inetd and possibly others.