I've often had an "aaah #$%^" moment in the shower, during a "bio break" or while driving. If I get stuck for more than an hour then I go home and will often figure the problem out.
One strategy that seems silly, but often really works, is to have a whiteboard in a room with a teddy-bear in a chair. If you get stuck then go explain to teddy how it works. In doing so you'll often find the problem.
Good..normally the biggest problems are solved when you change the envionment, i guess if we keep working in the same place and keep seeing the problem we tend to ignore minor problems that are actually the cause.