Microsoft makes a free(?) tool called WAS - Web Application Stress Tool. You can find it on their site. It allows scripting pretend users onto your site. Never used it myself but got it and was going to try it.
I wrote my own program for Windows called "Zombie" which allows the same kind of thing. I've never released it though. It allows you to set a short script for what pages to hit and then control how many users run the script. It gives you a realtime graph of page load times so you can see how that if affected by user load.
I did this for my own purposes to see how well my site behaved and how many users I could handle before needing a better server. It actually worked pretty well as it's an MFC app with fully multi-threaded C++ code.
One day I was adding users in bunches of 8 until I got up to 150 users all pounding on my pages and I wondered why they were starting to get dropped like crazy. Then I realized that I had Apache max clients set to 150 - so empirically I found out that the Apache settings do work... ha ha.
If people are really interested in that kind of thing I thought one day to bundle it up and release it as a freeware tool but I haven't had time so far.