tough, tough question. over the years we have seen some great finishers in bevan, hussey, symonds, klusener, lamb, fairbrother, dean jones and dhoni. and some fantastic middle order champions in lara, inzamam, de silva, miandad, zaheer abbas, de villiers, g.chappell, kohli, c.lloyd and kallis. and some awesome top order stalwarts in gilchrist, jayasuriya, anwar, m.waugh, amla, hayden, ganguly and greenidge.
but i firmly believe that the crown for the greatest ODI batter over-all should belong to one of viv richards, tendulkar or ponting. they set up games scoring big, chased improbable targets controlling the innings, destroyed attacks in electrifying cameos, built partnerships from precarious positions, and remained the backbone of their celebrated batting line-ups for many many years.
the fact that he was the most complete batsman of his era (from test cricket perspective, I admit, he averaged 40 in every country he played in) gave sachin the aura and he had the numbers to back his claim. ponting OTOH was a notch below the other two both in terms of average and strike rate making him lag behind in this race for primus inter pares. but on certain days, when on song, he looked the best batsman ever.
viv richards gets my vote because he invented the art of ODI batting. in ODI cricket's infancy when greenidge's SR of 65 was never considered slow, viv scored at 90 per 100 balls which was on par with jayasuriya's. and he averaged 47 over 180+ matches. there was no rule on bouncer restriction and nothing known as power play fielding conditions when he took on his opposition for 17 years aorund the globe. he hit over the top, cross batted fast bowlers, hooked, swept and kept losing the ball in the crowd. and it was bloody difficult to get him out despite the aggression.
of course, tendulkar, ponting and gilchrist are automatic choices in an all time XI. but their names will be written after you print the name of Sir IVA Richards.