This may sound strange, but I agree: magic overall is not nearly as good as melee.
Why? It's simple. Numbers. And not having to sleep every other round!
A regular level 30 fighter can easily dish out a minimum - and I mean minimum -- of 100 points a round. With a little tweaking, this can hit 140/round on AVERAGE. CromF, dual-wield, etc. etc. Beyond the damage, add in environmental pain, and weapon no-save effects (slow, stun, need I mention vorpal!) and it's just silly. Throw in GreaterWhirlwind, and it's gross -- 200+ and instant vorpalization, usually.
Enemies have only ONE defense against this fighter. Stoneskin, and environmental/special effects still get through that (does vorpal?). AC does not count; you will hit 99% of the time at such high levels. After stoneskin goes away it's all over, of course.
Now what can a mage do to generate 140 points of damage/round? 3 skull traps is 60d6 maximum 360 damage (capped at 20). Sounds good, but monsters almost always save vs. spells (180) at TOB levels. And if they have Magic Resistance throw out 1 or 2 skulltraps. If they have resistance vs. magic damage throw out a percentage. If they are immune to spells throw it all out. Assume the monster saves, but does NOT have MR or other immunities (and lots do) you are doing 180 dam/round. MAX. On average it's more like 120. True, it is to an area (area effect) so you MIGHT effect more than one baddie. Maybe not. The point is you have used 4 spells (sequencer, 3 skull traps) and managed to do less damage than one round of melee with a fighter. If you use your level 8 spell Horrid Wilting you will probably do 200 or so if the monster is not immune or resistant etc. That uses 3 8th level spells, and a sequencer.
I know sorcerers have a lot of spells, but if you use up 4 every round to match a fighter dishing out damage, you won't have many left after 10 rounds. Does area effect equalize things? Somewhat. Skull trap WILL soften up bunched up baddies. But then you need to do another 3 skull traps, or send in a fighter to finish the job.
Spells are great, but greatest when they help the fighters. Use Improved Haste to give that fighter 8-10 attacks/round for like -- 30 rounds. Use simulacrum/mislead to give yourself another melee attacker. Use tensor's to make yourself better in melee and heal.
While a sorcerer can probably do more single-round damage than a figher ever could (the old time stop/improved alacrity/20 spells thing) this is a one-time blast. And if you kill your enemy in one round with spells, great. That's like what a fighter does using a vorpal weapon and greater whirlwind in one round.
And fighters go ALL DAY. I can't stress this enough. The fighter dishes out 100+ a round for 50+ rounds or more. If he's taking damage there are weapons that heal as they hit (foebane) that will keep you safe for quite a long time (also regeneration, etc. etc.)
Fighters can insta-kill EVERYTHING but a few select baddies. And those they just pound.
They can be self-healing, spell-disrupting, magic-dispelling monsters.
A few select spells can turn a fighter into an absolute nightmare. A fighter/mage is plain scary because he can cast stoneskin/other protections/imp. haste on himself. A fighter with basic spell protections is the uber, period.
Yeah yeah, spells are great and all that... but think about it. A one-handed weapon that is vorpal 10% of the time, every hit. And you hit 2-3 times a round (before haste or whirwind). What spell is the equal of that??? It's like a finger of death that kills 30% of the time, no save, on everything less than a dragon. And you "cast" this spell every round for free! What sorcerer would not give their left arm for such an ability? Well you can have it -- just give a fighter the right axe...
I like mages, I like spells, I don't actually like vanilla melee battles, but the way BGII and TOB are set up -- fighters rule. I think it's just the nature of BGII and the engine and AI limitations. And, of course, the power of great weapons and great armor.