Stuff you write down aren't numbers, they're representations or names of numbers. There is a number named "1", there is a number named "2". "2" is not the number itself. You can't infer the two-ness of "2" by staring at the symbols.
It turns out that our way of naming numbers isn't perfect. Each number has multiple names. "2" and "2.0" are both names for the same number, as is "2.00", "2.000", and "2.0000". It turns out that you can name "2" a different way, as "1.9999999999999999999999999999999999999999999999999999...", where there are an infinite number of nines. The names may be different, but the numbers they name are the same.
You've had half a dozen answers already, and they are all correct, but you may find them unenlightening, because you may find they are not addressing what you feel the problem is. To you it may be "obvious" that 0.9999... can't equal 1, and if that's the case, no amount of explanation of why it is will satisfy you.
If you want to talk about this further and to understand what's going on, I'm happy to try to work with you. My email is in my profile.
If you want to be formal, 0.999... is by definition the limit as n goes to infinity of the sum from x=1..n of (9/10^x). This limit converges to 1.
More intuitively, what is the difference (as in subtraction) between 0.999... and 1? I think you'll find that it doesn't make sense for it to be anything other than zero. And if the difference between two numbers is zero then surely they must be equal.
That last value is, in fact, just zero, only written in a less-condensed form than usual. It is always the case in the real numbers that the only time a - b = 0 is when a = b, so that must mean 1.000... = 0.999... in the real numbers.
More verbosely: At every point in the decimal expansion of the result of the subtraction, the result must be 0 because both 1.000... and 0.999... go on forever. This means that the result must be smaller than any positive real number, which means, because the real numbers contain no non-zero infinitesimal values, it must be zero, which means 1.000... must equal 0.999... because a - b = 0 if and only if a = b.
There are other sets of numbers where this is not the case, such as the p-adic numbers for some p.
Okay, you got me. Why is 0.999... != 1 incorrect?