I would be interested in a solution to this as well.
Usually I just add a rewrite rule in my .htaccess, before the SilverStripe rewrite rule. This then redirects to the "down for maintenance" page.
So it actually reduces to un/commenting a line in the .htaccess.
Changing it inside the CMS would be much nicer though.
Yes, I guess it would require a fixed IP... Luckily I have one in work :).
I guess another way would be to create a sub domain that points to the main site and then redirect that domain when the site is live and use it to access the site while it is down for maintenance? Shouldn't be to hard, you would just have to switch which rules you comment in your htaccess.
Admittedly, I could be making this too complex, but it seems like an idea at least :).
You will want to send a HTTP 503 response as well, not a 200.
Probably the easiest way is to use a separate docroot for a 503 page and just switch the vhost to let apache server that file instead of your SilverStripe installation. Conceptually:
header( "HTTP/1.0 503 Service Unavailable" );
<body>My 1337 site is currently unavailable due to maintainance. Please try again in a couple of minutes</body>