ND, I don't want to state the obvious but have you setup multiple replicated databases on different servers. This will help first with load balancing but also if you come under a concerted DOS attack then if your database breaks another one will automaticlly takes it's place and without the user ever knowing.
I could be wrong but I believe it's also possible to have a cached copy of your entire website on another server, only to be used in the event the main website goes down. Both of these features are normally found on highend enterprise servers, the downside is that they cost anything upto £100k a month to rent.
Also, can't you actively block out the IP addresses where the DOS attack is coming from. To be honest and I'm not knocking you or anything but it really shouldn't be that much of a problem to overcome these attacks, afterall Google, Yahoo, Amazon and Microsoft to name but a few all seem to be able to cope pretty well without any loss of service. They only have a problem when a major virus/worm is launched at them.
Best of luck anyway.