Well, you basically need infantry and artillery to create breaches.
For assaulting, then, It's another story.
Remember frontage is 9 for breaches and 3 for fortress; and check any frontage bonus/malus of your generals. This way you won't get any frontage malus and your body count won't raise too much.
That's pretty much all I've discovered till now.
I do wonder what tactics are best for assaulting...