This chapter is from the book
NAT is necessary because organizations and individuals need the ability to allow more hosts to communicate with the Internet than their address space allows. Specific blocks of IP addresses have been set aside to accommodate NAT.
NAT also provides a way to more efficiently use address space without the overhead imposed by subnetting. However, NAT imposes restrictions of its own, and it may not be appropriate for every situation.