As promised, here's my quick and easy replacement for the rubbish Rogue Trader mass combat system, which should work with any rpg.
Now, the best way to handle mass combat in an rpg is to simply do what makes for the best story; abstract everything but the players' actions and use the space between their combat rounds to explain what's going on on the rest of the battlefield. Perhaps the GM wants to add a bit of uncertainty to the battle, or to reflect the players' effects on the wider conflict; that's where this system comes in. It still sits in the background, but also outputs enough data to give an uncertain GM pointers on how to describe the battle. It takes about ten minutes to do, and is probably best done before the battle begins, which might necessitate a small break in the action.
Get the statistics for the most common type of fighter on each side. If there is a disparity in army sizes, then you might need two from army A for every one from army B, but the idea is to get the numbers down to the smallest possible. Don't worry about champions, artillery or other special units right now; we'll factor them in later.
Run a number of rounds of fighting between these combatants, using the rules of your chosen rpg as standard, except for damage. No one gets killed or knocked out here, you're just determining who does the most damage, so tot up the hit points or damage levels, or whatever. The side that does most damage wins the round and scores a point. You'll want to do a few rounds of this; I'd suggest eleven as a good number, but any number is fine, although an odd number is probably best.
Now you have the basic shape of the battle, and the points total should tell you which side wins, and by how much. It is worth coming up with some narrative at this point, to explain how army A suddenly caused so much damage when they were getting beaten last turn, and so on.
This is the GM fudging bit. Any special abilities, elite units, champions, air support, etc. come in here. For every one of these which you think will have an effect on the battle, add an extra point to that side's total. If the players have come to you with plans for the battle beforehand, then these too may affect the score.
You are now ready to go back to the table.
Run your rpg session as normal, with the battle going on in the background. If the players are keeping tabs on the battle, give them occasional reports on how things are going. If the players are actively involved, then let them affect the battle score you worked out earlier. So if one player-character is wading into the opposing forces with his axe, run a duel between himself and one of the opposing troops; if he wins, add a point to his side's total. If another player-character is shouting orders over a loudspeaker, have her make some kind of command skill test, and depending on how well she does, add (or subtract!) points from her side's total. The highest total wins the battle, simple as that.
And that's pretty much it. It's not a perfect system, but it's both robust and loose enough to do the job. And of course, if you don't like the resulting data, then chuck it out and do what makes for the most entertaining story. That's the best way to do it, anyway.
Update: Fellow Rogue Trader GM Witchfinder General has come up with a much more elegant approach to the same problem.