DarrkPhoenix: Ranged units (either archers or mages) are your friend in that kind of battle. Basically you want something that can take out the witch in the back row without having to first hack through the marble gargoyle. Archers tend to be a bit better suited for this purpose as they have higher initiative (and thus get to go first). And once you get an archer fully upgraded to an assassin they can often one-shot units like witches before they even get a chance to act.
Also, regarding witch hunters vs knights, in the earlier scenarios witch hunters can be the better choice due to their immunity to mind-affecting spells (which can be a real pain when you have a smaller army). As your progress through the campaign, though, the knight upgrade path becomes better both due to the higher damage and also because one of the final upgrade options has damage reduction which makes them great tanks.