Apache has several modules that allow distribution of requests among servers, for redundancy, increased availability, etc.
Reverse proxying + mod_rewrite: There is nothing in Apache that you can not do with mod_rewrite ... :) This technique consists of having an Apache front-end server acting as a proxy for the backend servers. You can find more information here
Mod_backhand: Allows seamless redirection of HTTP requests from one web server to another. This redirection can be used to target machines with under-utilized resources, thus providing fine-grained, per-request load balancing of web requests. More information at http://www.backhand.org/.