Theoretically, the maximum batting average is unlimited, but I would also like to explain the concept of batting average a bit more in detail.
Batting average, as the name suggests, is the average score a batsman makes per innings during his career, and often serves as a measure of "how good" of a batsman he is, especially in comparison to others. (Hang on, I will come to the 'not out' in a moment.)
For example, suppose a batsman makes following scores in 10 innings: 71, 142, 0, 7, 31, 94, 26, 75, 113, 57. His aggregate score over 10 innings is 616, and the batting average is 61.6. Making big scores (typically 400 or more in an innings) increases a team's chances of winning, so a batsman who can score about 61.6 runs per innings will definitely contribute to the team's wins more often.
However, there is a little complication, by way of 'not out'. Normally, a batsman can continue batting for as long as he likes until he gets out. However, a team's innings can end without all batsmen being dismissed.
- An innings ends when 10 batsmen of the team get out, leaving the 11th batsman as 'not out'.
- The captain of the batting side declares the innings closed in order to give his bowlers enough time to get the opposing side's batsmen out. In such cases, both batsmen at the crease would be considered 'not out' (unless the declaration happens on the fall of a wicket, in which case, the only batsman remaining at the crease is 'not out').
- The batting team achieves its target, in which case, both batsmen at the crease are 'not out'.
- The game is interrupted for any reason, such as rain, and never resumes. Again, the one or two batsmen at the crease are 'not out'.
In such cases, the batsman's innings is not considered as "complete" and so it was deemed "unfair" to bring down their batting average, by counting such innings in the denominator of batting average calculations. For example, if a batsman stays not out on 3, 1, 2, 4 in 4 innings, his batting average would be 2.50, which hardly tells us how good (or bad) a batsman he is. As some sort of compromise, it was decided to exclude such 'not out' scores from the calculations.
As a result of this, batsmen who have played only a handful of innings could end up with a "ridiculous" average. For example, have a look at this page on Cricinfo Statsguru, where a few players have average close to the Don, and a couple of them even better than him.
Such edge cases tend to make the statistical data less meaningful, so statisticians (and fans) typically include an additional criteria, such as batsman should score minimum 1000 runs or play at least 20 innings to be "considered", and that's how, the Don's 99.94 is considered the greatest batting average.