Depends entirely on what you're trying to do, how to distribute it over several servers. If you're serving static data & you're getting too many hits, DNS load balancing can do the trick. If your data is dynamic & database-bound, serving the static data/scripts on one server and placing the database on a separate, exclusive server (and connect the two via very high speed interconnect) will be much easier to get better performance then DNS balancing.
Of course, this assumes you've tried all software solutions. Throwing hardware at a bad software solution will only prolong your problems. Instead of apache or iis, try lighttpd for static content (or "light" dynamic content) as you will probably get far superior performance.
If you have dynamic content make sure your scripts are at least somewhat optimized & not running stupid algorithms. Then make sure you have all the performance caches set up - php caching, memcached, that sort of thing.
If you do all this and your performance is still lacking, time to get some extra equipment