Artillery is awesome in seiges but it slows down your armies on the strategic map, so I often rely on improvised seige gear, ie battering rams etc.

The plan:
1) Upon laying seige, build 2-3 battering rams and 1-2 seige towers.

2) Assault ASAP. The sooner you take the town the sooner it starts making you money.

3) Roll forward with all seige engines. Only 1 ram can attack the gate, but keep the rest handy as backup.

4) Dont waste time fighting on the walls. Wall defenders get a massive morale boost, while attackers suffer deadly fire from the towers. And usually, combat proceeds slowly since few troops are in contact. Concentrate your main push through the gate, using infantry. I like to open with riff raff units whose salaries exceed performance.

5) As your disposable attack runs down, move elite infantry through the gate. If the enemy has few spearmen, cavalry is an option. Continue to ignore defenders on the walls, even archers. Their shooting will be highly inaccurate, and your troops will be more effective fighting on the ground than on the walls.

6) Eventually your assault will defeat the gate defenders and you'll have an open road to the town square. Advance all melee units toward the town square, while continuing to sneer at the wall defenders. This forces them to abandon the walls and try to intercept your march. Typically they break instead, having lost their wall-boosted morale while outflanked and outnumbered. You now capture the walls by default.

7) If you are facing a strong defense, they will be setting up a last stand in the town square. Take your best spear unit (or two) and position them near the town square. They will be a shield for your ranged units. Behind that roadblock, fill the street with archers, and they'll rain death upon the town square. Victory is yours.