A player who can build a partnership and go for shots when needed, and has a good innings temperament, like Ricky Ponting, Gurusinha or Imran Khan, should bat at 3, and not someone with two left feet against pace, like Shoaib Malik or Ganguly. The best choice is Rahul Dravid and nobody else.
Sachin can bat at 4 where his new style (if he decides to stick on playing the way he did in the Asia Cup) would be mightily effective and we have two hitters at the top. Sourav at 5 means he would be like a specialist hitter himself and Rahul has done well in the lower middle order in the past too and Kaif/ Rohan/Kartik at 7 means we have a more than decent team to field. If Agarkar and Balaji get picked, then we almost have 11 batters, since Harbhajan can bat usefully, in his own unorthodox way and Balaji is a decent hitter too.
Having 11 batsmen is not enough to win matches- otherwise the Indians would have won every tournament where they played and could have challenged the Australians. In fact, even 4 batsmen are enough to win a match, if they score the runs needed.
That Number 7 position must go to a genuine all-rounder and nobody else. The team lacks an all-rounder, which explains why they cannot sustain a winning position, or get out of a tough spot. ODI cricket, or modern-day cricket is not a game for specialists. You have to have multi-skilled players in your side. The best teams have at least one genuine all-rounder. Australia have Gilchrist, NZ have Cairns, England have Flintoff, SA have as many as 3 all-rounders. The Indians need one, and the best choices are Bahutule, Ramesh Powar and JP Yadav. Even Sodhi must be given more chances- his fielding is of such high quality, that can be considered as an extra sikill, and very relevant in a team whose fielding is an area of weakness.