Uhm, when the db crashes or something but the webserver itself is still running most monitoring tools will show "online" - because a website was delivered (the software can't tell if you WANT the error to be there, can it?).
If you've all sites on dedicated servers you could set up a monitoring process that checks if individual processes are running (like apache, mysql, etc.) and sends you emails if one or more processes are not running and maybe even tries to restart them (monit can do that for example). You can get it at
http://mmonit.com/monit/ or the multi-server version at
http://mmonit.com/
If you're talking about virtual accounts or dedicated boxes where you've no root access it's a little bit more complicated. You could probably make a special comment into each sites source code like < ! - - SITE:xy:online - - > and set up a box that checks all sites for this code snippets - but of course that will generate HEAVY traffic if you want frequent checks.
Maybe you could combine different things - like just pinging the server every x min and check for the code snippet every 1 or 2 hours.