Visual Studio Test Edition (2008/10) is a great tool for the job. You create individual web tests and combine the to generate a load on your webserver.
•Identify bottlenecks
The tool allows you to configure exactly the perfmon stats you want to analyse. 2010 also automates the process of taking a database trace.
•Learn the number and the load of HTTP requests
This requires some analysis of your IIS logs. Get a copy of Logparse2.2 (free MS tool). Load the logs into a database and have a look at what is going on.
•Easily determine the components that are using an Expires header and/or being gzipped
Again the IIS logs are the best place to get a handle on what is there.
•Figure out where to increase download parllelization
The IIS logs will tell you where abouts your actual users are hitting things, but Chrome has a really nice tool to investigate page by page the timing of invidual items.
•Locate duplicate scripts and unncessary redirects
Not sure for this.
•Determine the load that will bring down the servers
Create a load test based on a "common" group of pages requests from the live site. Add virtual users until the site dies. Be aware that any half decent webserver is going to require quite a bit of processing to take down, so you will require a licence for the MS load agents in order to generate enough load. Visual Studio 2010 will allow you to buy a licence for a number of virtual users and spread the virtual users of a number of machines in order to get a good load happening.
•Pinpoint key areas of server optimization
The load test tool captures the server perfmon statistics and allows you to find out the server bottlenecks. The test also capture the response times for individual pages, identifying particularly slow pages for improvement.