The problem, in my opinion, is very rarely the power itself. The real problem with an overpowered character is both the character itself and its player. So, if you want to prevent a character from becoming OP, play him right. Anticipate the growth when you "start low," and make him right. For example, Batman. He doesn't have a super power, but roll with me. Now this guy could easily put a permanent end to crime in Gotham City...Except he doesn't kill. He has a character trait that prevents him from using all of his potential strength. That gives this character an eternal struggle of finding balance. How boring would it be if Batman just killed all his problems? His story line would end too quickly, quite frankly. Lame. Sometimes you don't need to balance physical strengths with physical weaknesses (but this does help). Sometimes giving a character all the power in the world, but the personality and morale to use that in his own unique way is just the way to go. There are probably plenty of issues with this way of thinking, but it's what I think, haha. Plus, it helps it always helps to add weaknesses as well. No matter how strong a person gets, he will always have flaws. Exploit them.