I have seen this a few times.
The next time it does not power on, turn the machine off at the mains and hold the power switch down for a few seconds. Plug back into the mains and then see if it powers on OK.
If you are quite sure that it is not a hibernation/standy problem and believe it is a hardware fault the 3 things I have seen cause it so far are:
1. The most common is the Power Supply ... if that previous trick worked then this is the most likely.
2. The motherboard ... not as likely as the PSU .. but the only way to really test is to use a different PSU ... if that does not fix it then it could be the MB.
3. The actual power switch (if there's a bad connection when depressing it) ... you can test this by either using a new switch .. or manually bridging the MB jumper for the power switch ... although I wouldn't reccomend that unless you know what youre doing!!