One of the slipperiest concepts in game design is that of balance. It actually comes in two flavors, so I'm going to discuss them separately.
The first component is character balance. When dealing with multiple characters or character types, each one should have something different and interesting to recommend it. But at the same time, if an option is too good, you've made all of the other options look bad by comparison.
This is the problem I ran into with my first draft magic system. Magic was too effective and too easy to do. If things got tough, the sorcerer could simply cast a spell and the problem would be solved. While you could argue that that's how the Oz stories work, it's not very fun in a game. Every player wants their "spotlight time", the chance to do something cool that only they can do, or only they can do well. To have a wizard in the party would mean that everyone else would pale in comparison. Hopefully, the redesign closed this gap.
While balance should be on the mind of every designer, it should also be part of the Game Master's responsibility. Make sure that each character that a player proposes is unique and interesting and doesn't step on another character's niche or schtick. Make sure that challenging one character doesn't mean invalidating other characters.
The next part of game balance is scenario balance. This means balancing the challenges that a character will face against their abilities. A well balanced scenario is one that makes the players work for their success, but avoids making it impossible. If a particular challenge is too hard, players will give up in frustration. If a challenge is too easy, players feel like their success was handed to them. I'm sure we've all played enough video games to appreciate that feeling of beating a boss battle once we'd figured out how to fight him. Same basic principle.