I think there are many ways to accomplish this (and likely opinions to go along with each) but I would do one of the two following:
Separate the application into various websites within IIS
- Use separate folders with unique web.config files
- Use separate application pools so each can be restarted without
affecting any other sites
Use 3rd Party Applications like Helicon Isapi Rewrite version 3
If you have under 20 subdomains, I would go with the first option. Pros: free, Cons: more administration. But you still have better control over the application if the application pools are split up. This way if one is misfiring for some reason, you can restart that one without affecting the others.
Helicon makes a good product. We use both solutions in our environment.