Try this solution...
Press and hold the home button, then the up-volume button, then the sleep/power button (so all three buttons are now pressed and held) --- it takes a while, but the white screen will go away and then after another 10 seconds or so (still holding btw!) the apple logo will come up, release the buttons and then wait, it'll boot normally again in a minute or two.
EDIT: Just tried it on my own 3GS here which decided to go into the WSoD - alas, doesn't seem to be working this time, not sure though if it's the buttons or not at fault.
If the home-up-sleep combo doesn't work ( as I encountered recently ), it might be worth letting the unit run flat for a few days and then plug it in and try the home-up-sleep combo again.
I was surprised, I thought I was going to have to bin this 3GS but amazingly it came back to life for me.
Not sure what the difference is, but perhaps during the total power-down phase the iPhone manages to go through some different stages in the firmware, as opposed to removing the board from the battery.