Pft, at lvl 20 a good leader in charge of a Kingdom can attract tens of thousands of lvl1 commoners to his cause.
I can almost hear the thousands of ineffectual *whiffs* as their crudely made pitchforks glance off of their enemy's masterworked mithril armour now.
For some reason all the peasants in one of my DM's games are not to be messed with. He makes all of them uber death machines just to deter us from bugging them. The last one we messed with was apparently an epic-level monk. He rolled a strength roll and succeeded at lifting an entire barn off of its foundation and throwing it at us.
If the necromancer can afford masterwork mithril armor, why can't the king guy afford stuff for his peasants to use?
Also, it just illustrates why they should have used CR instead of HD, and why CR should be overhauled to account for high-level levels being worth more than lower-level levels.
For example, let's say Level 1 Fighter is worth 10 points. We can probably agree that Level 2 is also worth 10 points. But Level 4 gives Weapon Specialization, which is a better opportunity than he had at level 1-3.
The difference is clearer with spellcasters. Going from level 1 to level 2 gives you what, an extra 1st level spell per day? Going from level 11 to 12 gives you access to a 6th level spell and a few other spells in the lower levels. It also gives a feat and a stat boost, and improves the effectiveness of many other spells that day. That 12th level should be worth a whole lot more than the 2nd level.
This would probably mean your army could be
680 1 HD skeletons, or
300 2 HD zombies, or
180 3 HD, or
120 4 HD, or
etc.
Until you'd get up to 20 HD which, if you chose it, you could have only 4 or 5 servants.
Make a common-sense comparison: which is better, 4 incorporeal and/or spellcasting 20 HD undead, or 680 corporeal nonspellcasting unintelligent undead? I expect just one of those 20 HD liches could destroy the skeletons without taking a scratch if prepared, and if unprepared would almost certainly survive to flee a little ways and spend 5 rounds preparing to obliterate them.
Which is to say, even my estimate (of -10% total HD iterated once per additional HD, then divided by the HD to get a number of troops) is still very generous.
680 1st level monsters = 34 20th level monsters is just stupid.
I think for a well-optimized character in a balanced group that works well together, you could argue for doubling of 1 HD equivalent per level. That would mean a 6th level PC is equal to 32 1 HD monsters, meaning the PC will win half the time or lose half the time. I can see a party of five 6th level PCs taking on 150 1st level monsters ... as long as they didn't flub it, because I could also see those monsters killing the whole party.
That progression results in one 20 HD = about 500,000 of the 1 HD monsters.
Again, remember we're talking about a live situation where the player has experience with his character, has a bunch of good magic items, etc. He will either have time to plan how he will assault the army, or else he can magically flee before he dies and then have time to make a plan. I do not doubt that a 20th level Wizard is totally able to take on that army, whether by mass-charming them and forcing them to turn on each other and then mopping up the dregs, or blasting the army and hunting down the scattered groups, or somehow seizing control of the leader and sending them into disastrous campaigns. Heck, if he can get them to march through a desert they're screwed.
I could also see a Fighter with Supreme Cleave hopping along the army's lines bopping them on the head, hitting on natural 1s, slaying the entire army in one round. No need to even roll; mathematically he cannot fail to kill them all unless they scatter into the glades and hollows, which just prolongs their deaths until one round per group and makes it impossible for them to bring their forces to bear against him.
TL;DR: A DM should say no to your idea of having dozens of Tarrasques and liches at level 20. A good DM would give interesting alternatives and let you have one or two instead of three dozen.