This is a common problem with iOS devices running up to the current iOS 6. Because the iOS box is a closed system, the ability. To identify the cause requires using Xcode with a laptop connected to a modified iOS device setup to debug this issue. Pretty much a non-starter.
I can tell you this much. This problem is cumulative: it occurred over time after use of the iOS device and very rarely with a freshly wiped or new device.
I have found with multiple iOS devices having this problem that the quick fix is shard restart of the iOS device (aka Windows fix). This seems to trigger some sort of clean up at boot time which alleviates the problem for a while (month?) but the problem will come back.
Very frustrating... this method of crowd sourcing quality assurance out to the customer community to perform. Imagine if your car crapped out like this or your fridge... Would you hook your laptop to your TV to help the manufacturer debug their wares or would you buy something different next time...
A hard restart is accomplished by holding the power button and the home button simultaneously until the iOS device spontaneously shuts down without the slider for shutdown. Then, when the screen is black, let go and press the power button.