Why do you need a reverse proxy? 

In a normal case, you may have one public IP address, and 4 servers behind your firewall.  One is serving mail, one is a database, one is a web server, and the last is a DNS server.  You want all of these servers to share your public IP address, and resolve to names like:
1.    database.yourdomain.com
2.    mail.yourdomain.com
3.    www.yourdomain.com
4.    fullyqualifiedns.yourdomain.com
Another case is when you have several different types of services that you would rather host on the same port rather than fowarding all types of different ports through your firewall/router.  For example, you have a Tomcat web container for your JSP pages, IIS for your ASP pages, and Apache for your PHP pages.  I realize that there are plugins to get IIS to serve all of these documents, but how much fun is that?  Also, I've learned that Apache HTTP is the best PHP webserver on any platform.
Note: if you are running IIS, you WILL have all kinds of other problems when attempting to install a reverse proxy... especially IIS6.  You may have to disable Windows' socket pooling.http://support.microsoft.com/kb/813368 and http://support.microsoft.com/kb/238131 

A reverse proxy will make this possible.  You can have one public IP address and several(multiple) internal IP addresses(hosts) and have them all available on the internet. {Forgive the redundancy of the previous sentence... I needed to use some words that would make this page easy to find in a search engine as most people looking for this solution would not know to type "reverse proxy."} The solution I have played with is Apache's HTTP server which can be configured as a reverse proxy.