Dhoni couldnt win much matches away from home only because he couldn't have the crowd support neither his team mates. What else any captain of a team then do?
Captaincy is all about managing the team, inspiring the players and plotting the strategies. Dhoni has proven himself beyond doubt in all these aspects. You can never compare Gambhir simply based on one season of IPL victory, whereas Dhoni himself has much better IPL captaincy credentials to his credit. Of course, if and when Dhoni plays himself out of the team with his poor technique or lack of form, we will have to look for another captain. It could be Gambhir then. Until then, as long as Dhoni remains in the test team, he is the ONLY choice for the captaincy. Regarding Ganguly's opinion, it is simply immature blabbering and it also shows that he has something against Dhoni, probably because Ganguly was sent out of the team when Dhoni was the captain. Otherwise, how can a sensible person say that Harbhajan is capable of leading the Indian team, just after one or two wins in the IPL? Later we have seen how poor was his captaincy for the Mumbai team! May be, Ganguly thinks that Dhoni did not insist on his retention in the Indian team. Pity politics!