Just finished my Out of the Abyss campaign...the party ended at 18th level after progressing past Demogorgon and being sucked into the Abyss and into Lolth's demonwebs.
What I learned from this experience:
It is difficult to challenge high level characters with monsters and mobs straight out of the Monster Manual or from published modules. High level characters have so many options and can dish out unreal amounts of damage. In the fight against Demogorgon, they completely and laughingly obliterated him in a record amount of time. Admittedly, I should have used additional mobs to help the demon lord, but I had mistakenly thought that he was going to be far more dangerous to the party than he was.
I mitigated this after I brought the party to the Demonwebs. I ran a heavily modified version of Queen of the Demonweb Pits (I threw out a lot of the stuff that made no sense...why in the hell would Gnolls and bugbears be working for Lolth?). I did a mix/variety of moderate and hard CR challenges (threw in a few deadly challenges as well) and restricted rests so that the group had to more carefully manage their resources. Additionally, I picked some of the more iconic creatures from the module and modified them; adding class levels to mobs like Driders made for an extremely interesting and challenging encounter. Also, because of the unique nature of the Demonwebs, I removed some of the typical weaknesses (like bright light/sunlight) from the drow and driders they encountered, as well as added some unique terrain to add an additional layer of challenge. This proved to be extremely effective.
Finally, in the showdown with the Demon Queen of Spiders, I again limited their rests. They fought three different aspects of her (all avatars...they didn't actually fight the goddess). The first aspect was in her humanoid form and she had two high level drow attendants; one was a diviner mage, the other an oathbreaker paladin. I gave the demon queen access to every cleric spell, and she could cast them all at will. The party was able to defeat the group, taking significant damage and weakening their resources, but the demon queen was able to escape. As the moved deeper, they encountered more driders (well, phase driders...damn, were they fun!), and the second aspect of Lolth decided to drop in and throw herself into the mix. This was the monstrous spider-with-the-woman's-face Lolth, and her barb attacks were particularly devastating due to the fact that they caused bleeding. Every time she took significant damage, she would teleport away (teleport 3/day as a lair action) and heal up, then leap back in. They eventually defeat her and the Phase Driders. Oh, also keep in mind that during this time, they've been being harassed by Lolth's lair actions; she was able to either summon spiders that would attack the group, dominate one of the party members, or create a mist that would remove resistance/make vulnerable to poison. The party quickly learned to cast protection spells on the Ranger/Rogue to prevent him from being dominated. Finally, they encounter the final aspect of Lolth in her lair. This form is a massive Drider that has a vorpal scimitar as well as the same barb attacks from before. She's being protected by several Yochlol, one of which was modified to cast Dispel Magic (Protection from Good and Evil was a particular bane for me). This fight proved to be extremely challenging. By the end, I had dropped (not killed) two of the characters and they had used most of their resources to finally defeat her. I left the ending of the campaign open, kind of doing a Quantum Leap thing with the group roaming the planes righting things that were wrong.
Needless to say, here are the things to remember.
Limit rests. Making the party manage their resources better is essential.
Throw out the CR assessments from the DMG. Once the party gets past 12th level, they become almost useless.
Add class levels to mobs.
Never EVER have the party fight a legendary monster by itself. Make sure you give it minions.
Lair actions, lair actions, lair actions.
Use interesting terrains and hazards.
Target party weaknesses; if members of the party have dumpstats/low saves, target those.
Find ways to remove some of the resistances and immunities that the party is capable of.
It is more work for the DM, but it is definitely worth it.