in reply to Eureka!
For me, sleep. Definitely. I sometimes wake up in the middle of the night, having fixed a problem in the time I thought I was sleeping :) I even fix bugs that I was completely unaware of.
The other day, I woke up, fixed an obscure bug and went back to bed. The customer sent me an e-mail asking why I worked so late, and how I knew about that bug since he hadn't reported it yet. I don't know! Maybe in my dreams, I'm a much better coder :)
But when I want to solve a problem, this never works. No eureka when it's needed most :(