Apart from the usual unchecking of all "allow this device to wake up..." boxes, I have found one more thing involved in this conundrum. It's a motherboard jumper.
I was able to stop Vista waking up with the usual "power management" tab unchecking and wake-on-lan disabling. To wake it up, I had to press the power button. Not very elegant but it works.
Several months later, I was leafing through my motherboard manual (as you do...) and read about a jumper allowing "USB Device Wake-Up". Turns out it was off by default. I set the jumper to on and hey presto, Vista stays asleep but I can still use the keyboard to wake it up! (have to re-check the box in device manager of course.)
My motherboard (Asus P5B-E) has one jumper for each set of USB ports, plus one for PS/2. I went over to a friend and her Asus has only one jumper for everything. But it works for her too. And the jumper was the only way to fix her Vista insomnia!
Very happy now.