Here's an analytical approach. Consider the following statement:
(*) "For every real number, there is a larger whole number."
Suppose this is true. Then for every positive real number, we can find a whole number n such that 1/n is smaller (and so is 1/m for m>n). Now (1 - 0.999...) is the limit of the sequence 1, 1/10, 1/100, 1/1000, .... This can't converge to a positive limit, because if it converged to say x, there'd be some n for which 1/n was less than x/2, so after a certain point in the sequence everything would be x/2 or more away from the limit, which is absurd. The limit can't be negative for a similar reason. So either the limit is 0, in which case 0.999... = 1, or the limit doesn't exist, in which case 0.999... is not well defined.
On the other hand, suppose (*) is false. Then 1 - 0.999... could in fact be 1/T, where T is a number larger than any whole number. I'm not going to do so here, but apparently this T can be defined in a sufficiently rigourous way that arithmetic can be performed on it. This gives rise to 'non-standard analysis' which allows for the existence of both infinitely large and infinitely small numbers.