I use Elite rangers, and a smattering of cavaliers. I will assault 4 or 5 times and just let my rangers pound the defenders, each time they will lose 30 - 50 depending on the town (Wercheg is the easiest...) and once all their archers and berserker types are dead I send in the cav... This is the best tactic I think on Rhodok territory, but also harder because the Arbelestiers are very mean... but if you ca bring 50 or 70 top tier ranged and 30 or 40 top tier infantry or Swadian nobles then it shouldn't be too much of a problem.
Of course you need to start the process with close to 100 morale as possible.