One of the most interesting little ecologies we've evolved in the game industry is the concept of a party, and the roles each member of the party can take on.
Most commonly this is part of an RPG. Nearly every RPG has the same core set of roles, although the boundaries can be a bit fuzzy as the game tries to make everything fun for everyone.
For example, the idea of a tank. In every RPG various characters are more or less frail, and it makes sense to have the most durable characters take the brunt of the damage. The tank is simply a class built to absorb all the damage, usually by "pulling aggro" and then soaking the damage. This has been true all the way back to the beginning, with the original tabletop RPGs. Warriors take the front line and soak the damage.
The problem is that the tank's role is fundamentally a passive role: get attacked more than the rest of the party. To make that more interesting, the tanks are typically given secondary roles such as being a mediocre attacker, mediocre support character, or having a really intricate aggro management mechanic.
Similarly, the healer role is one which rarely involves the enemy - you stand around and support your allies as they get torn up. In the old days it was the role assigned to the least interested member of the team, typically someone's brother or girlfriend, with the assumption that they wouldn't get into the good roles anyway. That's kind of backwards, though - those are the people who should be given the most fundamental and straightforward attacker roles. Well, either way, the role of support is pretty dull, and therefore they are typically given secondary roles such as mediocre attacker or mediocre striker (mage).
Modern games, tabletop and MMO alike, tend to actually spell out what each class is good at. Generally I lump them into various kinds of attacker (glass cannon, artillery, steady DPS, etc) and various kinds of defender (support, tank, debuffer). This obviously isn't perfect - a pet-using class, for example, is a bit tough to categorize.
And that's the point I'm slowly working around to: the roles in the party are not static. They depend on the game.
In many cases people think of roles as being something fundamental and all games tap the same well. There's "always" a "rogue", there's "always" a "tank", etc.
That's just because everyone's used to combat being modeled in very similar ways in every game.
Let's consider the two boring classes: support and tanking. These are dull because they don't involve accomplishing the primary goal in combat - murder. However, there are other roles that are good at murder, and they're more fun.
There's no reason to try to "trick out" the tank to make them fun. Polishing a turd is not going to give you much. But there are several other approaches that you might consider. They all involve completely changing out the mechanics.
The easiest solution is to simply write out the boring roles altogether. Everyone has the same durability, there's no tanking class. Nobody can heal during combat, there is no support class. This doesn't simplify combat, because combat isn't a static concept. You can always add more complexity at any level you like, and make a multitude of complicated offensive classes that play a variety of important battlefield roles.
For example, that approach would work well with a game based around a fighting anime, or a sentai series, or a magical girl thing. All the characters support each other, but they don't go around casting boost spells on each other. They do sometimes do combination attacks, or put up a barrier, but by and large all of the characters are offensive combatants. Setting aside the inevitable power imbalance, of course.
Another option is to change the core mechanics of combat such that those roles (or similar roles) are part of the densest part of combat. Instead of combat being oriented around damage output, you could make combat oriented around terrain control, morale, claiming pieces of a limited stake, and so on. Now the attack-oriented classes are on the sidelines and the control classes are the core classes with the most complex interactions.
This would work well in, say, a Harry Potterlike game about wizarding school. The students wouldn't be fighting for their lives, they would instead be fighting for morale and house points. So a tank equivalent would be someone who can soak up point loss by giving the teacher puppy-dog eyes, while a support character would be someone who always comes in with a smile and reassuring word. You could also have a class that excels at hiding fallout or minimizing evidence, a class that excels at inspiring people, a class that excels at scrounging up on-hand resources so you don't have to risk being fined for premeditated mischief... and that's not even getting into the magic side of things.
Even the nonmagic things can be quite complex - something like "coming in with a reassuring word" sounds pretty passive, but it can be intricately linked to the fundamental experience. Reassuring someone takes a certain amount of time, during which they can't be doing other things. Obviously reassuring your own side can keep your people on their A-game even when times are tough... but it's also an offensive tool for taking an enemy out of rotation for a while by spending time reassuring THEM.
This brings us to the big point. The classes in a party are not drawn from a magic well of static class templates. They exist to fill roles in the mechanics of the game world. Everyone uses the same damn combat mechanics, so everyone has very similar combat roles. But you don't need to.
Doesn't it sound kind of interesting, this magic school game? By creating mechanics carefully, your mechanics can enable your worldbuilding and message. The students at a wizarding school don't need to roll 1d20 to hit and deal 1d8 damage. Instead, you should come up with mechanics that support what you want the game to be about. In my case, I think mechanics based around timing are probably best, as it gives a good feeling for the alternating annoying-fast and glacial-slow pace of school life. So a lot of the mechanics would be about changing the timing of things - for example, moving certain events to a faster or slower pace, hiding certain actions for certain lengths of time, delaying teachers for certain amounts of time. Since that's the mechanic I've chosen, my "combat" classes will all vary based on how they move things within time.
Which would give me some interesting classes!
For example, the "cuckoolander" class exists solely to slow things down or derail them. Being weird and confused is actually a viable combat class in this game.
Anyway, stop using the typical mechanics, they're boring.