I vote for Alexander the Great. Plenty of generals win battles and make conquests, but then more often than not they lose them again. Alexander achieved the impossible. He invaded a whole continent with a tiny army, conquered it all in a couple of years, conquered more territory in less time than anyone before or since, and - unlike most other great conquerors - didn't come a cropper in the end.
IMHO the best generals are generals who are masters of logistics. Tactical skill isn't good enough. Look at Napoleon. Great tactician. Won stunning victories. Yet he still threw it all away when he threw away his army in Russia, a logistical disaster of the first order. Napoleon was too impatient to be a good logician. He was determined to march on Moscow even when his marshals advised him to winter in Smolensk.
In his earlier campaigns Napoleon's approach to logistics was basically to tell his generals to steal everything they needed and stop complaining (his supply plans in the Austerlitz campaign also got completely fouled up, but luckily there was plenty to steal on the way to Vienna). That approach worked fine if you were in prosperous and fertile Germany, but it was a recipe for disaster in Spain and Russia.
Similar story with Rommel. He was impatient and therefore aggressive, which is often the right approach from a tactical point of view. But he eventually overran his supply lines. The great general doesn't blame his superiors for failing to provide enough supplies. He makes the best use of the resources available to him, even if that means being cautious and defensive, and missing out on immediate glory.
Similar story with Charles XII of Sweden. Great general. Won dozens of brilliant victories against superior odds. But came a cropper in the end when his army fetched up at Poltava in the middle of nowhere (well, Ukraine) and ran out of supplies.
Now consider Alexander. He managed to keep his army fed even though he marched it all the way to India. His campaigns were carefully planned in order to keep his men in supply, hugging coastlines and rivers, and synchronizing them with harvests.
http://www.proactiongroup.com/articles/logisticslessons.pdf.
Alexander also kept his army supplied by being a skillful diplomat - another very important quality for a truly great general. Again, a big contrast with Napoleon who was such a clumsy diplomat that he eventually managed to turn every important ally he had against him.
Napoleon was right about one thing: An army marches on its stomach. But Alexander was much better at putting that into practice.
EDIT Don't know much about Hannibal, but sounds like we have a strong contender here too!