Very good points all, particularly the one directly above this post.

In summary, Hannibal was in a foreign land and his army would die of starvation long before he starved out the citizens of Rome. That rules out a siege. He also didn't have the equipment to assault the city with a 3 .6 m thick, 11 km long wall surrounding it (the Servian wall). With the benefit of hindsight, it's easy to accuse Hannibal of being a poor strategist, but in reality he was an extraordinarily bold genius who had everything against him. It's as if fate herself would not have him ultimately win, in spite of his obvious greatness.