Minecraft wiki entry for TNT_cannons, associated text: Multiple shots [1]
Semi-automatic/fully-automatic firing and reloading [2] [3]
Condenser charge (another set of TNT that explodes, pushing the charge towards the front of the cannon to increase the propulsion force.)
Safety features, such as a blast shield to protect players/mobs from damage caused by the charge exploding
Adjustable shot delay
Alternative ammo, such as arrows, sand/gravel, or anvils [4]
Dry cannon: building a cannon from explosion-resistant material to simplify design, maintenance, and potentially improve firing distance (dry cannons fire farther than their wet counterparts, all other factors being the same). See below for construction details.
Cannons that fire in a special direction, such as up or diagonally
Adjustable range, trajectory and direction (aimable cannons)
Spread shot/mass destruction cannons
Shotgun-like charges