Honestly, I feel like the big problem with balance stems from three things:
1) PvP (or PvE, depending on your point of view

)
2) The need to balance solo vs. group play
3) Group roles and the mechanics of those roles are too generic
The problems presented by having both PvP and PvE have been discussed ad nauseum, and I personally believe that it will never be possible to have them both be 100% balanced at the same time. I think that the best blizzard can hope for is that every class has at least 2 specs that are viable in both categories.
The other issue is blizzard's desire to make solo play viable. Thus, DPS must be integrated into every role in order to ensure at least a basic level of solo-ability. Whether or not this is a good thing is a debate for another thread
But the biggest problem imo is that group roles are too generic. Most people talk about the "holy trinity" or tank/heal/DPS, but in most cases, there are actually several other roles, the most prominent being buffing, CC, and debuffing. The problem is that these roles are most often integrated with either healer (Buffing), or DPS (CC/debuffing).
With the introduction of Death Knights in WotLK, there will be a total of 30 class/spec combos. Making each one useful to a raid without making each one required and/or identical seems like a tough task under the current system. But if we vary things a bit, it seems like less of a challenge.
One way to increase the viability of several different specs that do the same thing is to give them radically different mechanics. Blizzard has started down this road a bit, with the differences between the various tanks and healers, but mostly, these amount to giving different strengths and weaknesses, instead of giving a totally different approach to the role. For instance, what if the 4 tanking classes looked something like:
-Warrior: The "tough" tank. Mitigates damage via innate class abilities. Tanks with a 2-Hander, and relies on a variety of timers to reduce the damage taken from individual attacks/spells*. Has a moderate amount of "oh shit" buttons.
-Bear Druid: The "armor" tank. Mitigates damage via extreme amounts of armor and resists*. Minimal emergency buttons.
-Paladin: The "shield" tank. Mitigates damage via blocking attacks/spells* with his shield. Also has minimal emergency buttons.
-DK: The "avoidance" tank. Doesn't mitigate damage, but instead avoids an enemy's attacks/spells*. Dual Wield tank, with a very high avoidance, and the highest variety of "oh shit" abilities to ensure than bad luck doesn't result in his death.
The result is four tanking classes that are very distinct, yet (in theory) can all be made equally good at the tanking role.
*since I'm creating my ideal WoW, I figure I might as well give spells and melee similar mechanics, which is something that's bugged the hell out of me for a long time.
Similar things could be done for all the other roles. Imagine if warlocks were a true debuff class, that did minimal personal DPS, but instead increased raid DPS by a very large amount, or if paladins were true endurance healers, having weaker heals overall, but never running OOM because they used some sort of rage-like system.
The second (and probably easier) solution is to add more roles (or, more properly, diversify the existing ones). As an example, let's consider the current classes that have an in-combat CC, and their roles (omitting tanking, because the current mechanics make trying to cast a CC while tanking a very bad idea :P):
-Mage: Polymorph (DPS)
-Warlock: Banish, Fear, Seduction (DPS)
-Hunter: Ice Trap, Scare Beast (DPS)
-Druid: Cyclone, Hibernate (DPS or Healing)
-Priest: Shackle (DPS or Healing)
-Paladin: Turn Undead (DPS or Healing)
Now, Druid, Priest, and Paladin CCs are rarely used because they are extremely limited, either because most common mobs are immune, the duration is too short, the cooldown is longer than the effect, or some combination of the 4. Now, the roles are already somewhat separated due to the type restrictions on some CCs, but what if this was done even more so. For instance, it could look something like:
-Mage: Humanoid Control (polymorph), Elemental Control (some other spell)
-Warlock: Humanoid Control (Fear), Demon Control (Banish)
-Hunter: Beast Control (Scare Beast), Giant Control (Some other spell)
-Druid: Beast Control (Hibernate), Dragonkin Control (Some other spell)
-Priest: Undead Control (Shackle), Elemental Control (Some other spell)
-Paladin: Undead Control (Turn Undead), Demon Control (some other spell)
-And several other spells for a few other classes
Basically, if every CC class could CC two types of mobs, each type of mob could only be CCd by 2 classes, and many boss encounters featured several types of adds that needed to be CCd, you suddenly have a wide variety of roles that need filling. As another example, tanking could be expanded to include Main tanking (Warriors and Paladins), add tanking (Feral Druids and Paladins), off tanking on bosses that have temporary aggro reductions (Feral Druids and Death Knights), and off tanking on bosses that fear (Warriors and Death Knights).
Basically, I think that in the development of TBC, blizzard was shooting for the diversification of roles, but as the game has dragged on, it really feels like they've changed courses and are now heading towards the homogenization of the various classes/specs, which I think will eventually result in a very bland and uninteresting game. Hopefully the current trend of changes are just stopgaps until they can introduce some radically revamped talents/abilities for the weaker class/spec combos, like they did with 2.0/TBC.