Unfortunately, I haven't seen many systems that fix this adequately.
Playing 4th ed, they seemed to have fixed this by turning everything unique about a class into some predefined powers that are rather narrow and specific. Healers can't heal without hitting something, wizards can't cast anything but rituals outside of combat. This solution requires either homebrewing or improvising -everything- that isn't combat and because that requires GM intervention, the GM can shut down anything they don't want to happen. Makes it a lot harder to do things that are somewhat disruptive, like creative prison breaking when the GM wants you to stay put. I'm most salty about this solution because the fighter gets even less to do and is even less distinct, there's almost no difference between an archer and a mage besides the mage getting a greater variety of effects.
The tome of battle and solutions like it just turn fighters into magic users, gives them powers that an match their peers, but this removes the individuality of a purely mundane martial. Can't well be Sir Lancelot when you have to spit flames from your sword to matter.
Solutions where mages are just underpowered have the issue that they just flip places with the fighter. The only spells that deal damage are high level and costly? Very little utility out of the rest of them? Now no one wants to be a wizard because they can't do anything.
Personally, I like the solution of ADnD best, good spells require more time to cast and disrupting the spell is both easy and potentially catastrophic. Multiple round casting is also a thing in 3.x, but it doesn't really matter till much later on. ADnD though? Easy as hell to turn the wizard into pudding by interrupting his spell. That gives the wizard a major drawback that allows unhindered classes to shine, but keeps enough firepower to make it a tempting option at character creation.