I still say the inherent "problem" (if you want to call it that) with spellcasters is versatility. In no system can a fighter ever be truly as powerful as a wizard simply because magic , potentially, can do -anything-. I understand that a low level wizard and fighter can be similar in strength, but when you start giving the wizard access to more and more spells, they can do more fantastic things which eventually dwarf the fighter on a fundamental level. This isnt in respect to combat power out right (though when wizards start summoning meteors and doing AOE damage most of these spells just obliterate the enemy, and rightly so as meteors should), but when wizards start getting things like clairvoyance, flight, dimension travel, create magic items, summoning demons etc etc, these are simply things that an ordinary fighter will never be able to do (unless you are running some kind of anime fantasy game like DBZ where fighters start learning Ki stuff, which then arguably turns them into battlemages of a sort).
The only thing you can possibly do to limit this kind of balance is to do just that, limit what kind of spells people have access too. Also we need to get away from this standard action crap and make spells take much longer to cast. But then you run into the situation of players whining that "it isnt fun to sit around and do nothing for X turns but casting a spell", but honestly there's no way around this. If you want spells to be cast per turn, and keep the same versatility then your wizards are simply GOING to be overpowered given the inherent nature of magic. At this point (again) the only thing to do is simply block and limit what kind of spells are available in YOUR game. I do this with pathfinder and 3.x games, and you know what? It fixes 99% of every problem I have heard people complain about those systems.