With ASP.NET 2 and above, a lot of the config elements now support a "configSource" attribute, that allows you to replace the contents of that section with an external file. this could allow you to have general settings in the main web.config and then separate files for the sections you know are going to change per environment.
As Nathan points out, in this instance you could use the RemoteOnly mode, which will display full errors when you are browsing the site on "localhost" - if you aren't developing on LocalHost then this won't help you.
VS2010 will add a new feature where you can modify the config file based on the build target, so a release or production build could automatically set this to "On", while debug or staging might set this to "Off".
Another option is to hook into the Application_Error event in the global.asax, and if the user is logged in as some sort of admin, output the stack trace, otherwise display the error page.