Something is messed with IIS when that occurs. I've run into this sometimes when making manual customizations to applicationHost.config and having a typo.
If it's a config issue, a trick that can work is to open up IIS Manager and navigate around a bit. IIS Manager will actually work if IIS is down, and if there is a syntax error, it will give you a fairly specific error message on what the issue is.
It can also occur if your applicationHost.config is referencing a module that isn't installed on that server. If that's the case, the best solution is to uninstall what you just installed, or manually pull up parts of the config until you narrow down what caused it.
Alternately, try reverting back to a previous backup of IIS to confirm that it's a .config issue. Also, check out Event Viewer. It should give more clues.