Siege engines help tons. They make it so much easier. But I, like im sure most player, don't bring siege equipment with me. So the key is as in all battles fix and flank.

For non-stone walls this is a matter of having more rams then they have heavy units. No so much as more rams then defenders, but heavy units that can guard a break in the wall.
If you send a heavy unit or two on a wide flank with a ram. The computer will only send a single unit to defend. It will keep its strongest units at the gate. So usually I put my strongest units on the flank when in attacking.


Now against Stone walls:
The default is of course true. Which would be have more ladders, siege towers then the defender has of heavy units.
This seems to always just be who can bring the best heavy unit to bear. As romans or Greeks who have the upper hand here. If you do have the upper hand in unit strength then dont be afraid to spread yourself out on the attack.
Now if your not a heavy infantry faction then you have to go for sappers and almost forget about getting on the walls.

But as I said at the top siege engines will make your life tons easier. So maybe the unit your looking for isnt a heavy infantry unit but a few siege engines.