'MORE VARIETY' IS A COMMON REFRAIN when looking for advice on how to spice up combat in TTRPGs. Change the enemies, spice up the environment, introduce multiple objectives and so on - the obvious solution to the frankly awfully boring D&D combat system is to bedazzle your players with lots of fancy toys so that they don't notice that there is no intrinsic value in the activity.
I think this is somewhat backwards. Tactical videogames like XCOM, Into the Breach and Gears of War: Tactics tend to have a limited number of units, and a somwhat restricted selection of maps (or at least some standard map features that get reused a lot). There is something to be said for the technical limitations of videogames as a medium here, but ultimately I think that's misguided: I believe that these limitations aren't a necessary evil, but rather a selling point for those games' combat systems. I believe that variety should never come at the expense of consistency.
To be clear, I am not talking about game titles that have shied away from combat, or that try to minimize its role in gameplay or the rules. Excising combat as an activity is a valid alternative, and making it akin to blackjack (high stakes gambling with quick resolution) is a good idea for certain designs. However, I find it telling that "combat as sport" is a somewhat derogatory designation when we, as a species, love both combat and sports.
Here's a case study: in D&D 3.5's supplement Races of Stone there were a bunch of halfling feats dedicated towards fighting giants. They were quite powerful, and inspired some cheesy builds leveraging reduce person as a buff spell, but beyond that they were largely useless. Why? Well, it's fairly obvious: have you ever looked at a Monster Manual? How many giants does it have in it? How many other things? If a DM is pursuing variety, what percentage of encounters could you seriously expect to fight a giant in?
Here's another case study: XCOM 2 has a character class called Specialist which can hack mechanical enemies. This action has a very low chance of success against any reasonably sized enemy (barring shenanigans), yet it almost always works against drones -- the easiest enemy to fight by far, almost useless, often flies around on its own as well. You could dispatch drones by literally walking up to them outside cover and hitting them with a gun a few times. They probably wouldn't retaliate meaningfully. They're quite pitiful.
Except that you very often find lone drones flying around during your stealth missions, and hacking doesn't break concealment, so having a Specialist take over a drone and using it to scout ahead while simultaneously getting your team in a great position for a quick alpha strike against the enemies before they are alerted to your presence is extremely valuable.
What's the difference between those two scenarios? It's not in the power of the ability, it's in the context in which it lives. A limited cast of enemy units produces a consistent meta where abilities may be balanced against each other. A giganting monster manual full of 'variety' leads players to optimize their builds for broad scope utility and hard numbers.
It's really unfair to the game designers to expect them to be able to balance every character build against every other character build in a vacuum. It's also really unfair to players to ask them to build a character that could work against any of the infinite possible encounters a DM might come up with. And it's really silly and non diegetic to ask a DM to build encounters with the characters' abilities in mind: oh you learned how to fly? Better put in some flying monsters. You wouldn't have had to fight them if you didn't learn to fly, but now that you can, let's make you use that ability!
So here's a suggestion: create a consistent and small cast of enemies for each of your game's factions. Stick to it. Warn your players about what they might face, and then allow them to make choices in their advancement that make them particularly effective against those enemies. Reward them for it. If they end up learning some of these units' exact stats? That's great. That's awesome. That's them learning to fight against these guys after having beat them so many times. Don't shy away from that, don't mix up the stats, don't try to keep things a mystery -- keep things consistent.
Will that get boring? It depends. It could, if you let it; but consistency brings a whole lot of variety on its own. The more your players (and you as a DM) learn to play with and around these units, the less overhead you'll have when fighting, the more space you'll have to play around with everything else. If you don't need to explain what's happening because everyone knows the Tyr Paladins can cast Scorching Light, you can focus your attention budget on handling a fight where the Paladins are using that spell from a fortified position overhead which needs to be busted open. If everyone knows the Black Swamp Roaches explode into a cloud of poison gas when killed, you can use that to build an encounter with civilians that need to be saved: push the roaches back before you kill them or the bystanders choke to death.
This kind of attitude would shine with a game built around it: character options that allow players to customize their fighting style to the campaign they're playing in, growing their skills organically to face the enemies they have to beat rather than some unspecified hypothetical gestalt of all possible monsters; crunchy bits that are unafraid of getting hyperspecific and niche, because there are going to be campaigns where that niche is exactly what you need and picking those abilities will be rewarded; factions that start with a consistent cast of units and, through play, may upgrade them or gain new ones, changing the campaign's meta and therefore the choices of the players in response... The possibilities are near endless.
Ultimately, I believe that more enemy variety is a patch on a broken system that ends up reinforcing the problem it aims to solve: if you encounter an endless variety of enemies, your tools to fight them must be near universal, and that in turn makes fights boil down to spamming repeatable, reliable effects over and over. Here's an orc: hit it with your sword. Here's an undead ooze: hit it with your sword. Here's an aberration from beyond the veil of death: hit it with your sword.
I have similar thoughts on things like additional objectives -- it's annoying to have an escort mission when none of your abilities relate to protecting someone, but if you could spec into bodyguard feats or whatever, and were reliably tasked with defending innocent bystanders, then wouldn't that turn into a mechanically relevant part of the game? Wouldn't picking up skills for defusing bombs matter more if your enemies consistently made you disarm explosives? Wouldn't having a swim speed be more satisfying if you could count on your environments almost always having water in them?
Consistency is the key to unlocking build-related satisfaction, and variety feels more meaningful when there is a baseline to move away from, rather than the limitless possibilities of 'anything goes, so long as it has HP'.