I think the problem many people (both "believers" and "nonbelievers") have with this is simply one of notation.

A decimal number like 0.312 is defined as the sum 3*10-1 + 1*10-2 + 2*10-3.

"0.999..." is defined similarily as the infinite series 9*10-1 + 9*10-2 + 9*10-3 + ... = sumi=1 to infinity 9*10-i. Such a sum is in turn defined as limn->infinity sumi=1 to n 9*10-i. It is clearly believable that that limit is 1, and it is not difficult to prove. (update: 10998521 gives a proof below).

Now, if there are any great deeply philosophical lessons to be learnt from this, I do not know. I think it is enough to note that if we allow "..." notation to indicate series, there can be several different decimal representations of a given number.


PS. On second thought, it is perhaps not completely a matter of arbitrary definitions. If you want the string "0.9999..." to have the value of a real number r such that r≤1 and r≥1-10-n for arbitrarily large n, then the only value r can have is 1. Similar to how there are no infinitesimals, completeness of the reals means there there are "not enough" real numbers to fit between 1 and the increasing sequence of point nines. To find such a rare beast you have to move to a bigger number system, like in non-standard analysis.