In terms of design driven class balance, there are a couple of methods that come to mind -- both driven by pvp, but that can be adapted easily to pve, and both of which can be altered to accommodate gear grinds, skill levels, etc.

First, there's the rock-paper-scissors method -- Class A kills Class B (but not C), Class B kills C (but not A), Class C kills A (but not B). The idea behind r-p-s is that no one is OP, everyone dies (in theory). In practice, r-p-s isn't perfect, and tends to lead to fotm class development. DAoC was a perfect example of this (and many many others).

The next is something called time-to-kill, or ttk. With TTK, each class starts with an initial TTK value -- if the class is killed too fast or too slow, buff/nerf the class. This get interesting when the initial TTK values don't lead to fun combat (see Warhammer for pretty much it's entire run). The idea is that everyone stays alive long enough to feel like they are contributing. The down side is that no one really feels like they can kill anyone efficiently, and it may end up feeling like skill is negligible, and attrition is the real decision maker. It's been a while since I played WoW, but I think WoW is at least partially balanced using TTK. Warhammer is another obvious example.

Both of these are statistical methods at heart, which means there is some variance from player skill, cds, etc.

It should be noted, however, that the anecdotal "class balance" most players believe in is a complete myth -- something that is never intended by MMO designers -- perfect balance = perfect boredom where everyone has a counter to everything and no one ever gets killed. Also, that both methods assume a perfect, bug-free code base...