The answer to this lies in the way you interpret the question, therefore the answer is both "yes" and "no". Unfortunately this is just another of those areas that has sparked a lot of debate in online forums, simply because both sides of the debate are arguing two entirely different things.
On one hand you have the "0.999... (recurring) does not equal 1" camp. This side will argue that there is no way 0.999... can ever equal 1 simply because logically the sequence can never get there.
On the other hand you have the "0.999... does equal 1" camp. They will argue that classical mathematics theory states that 0.999... equals 1, it can be used in place of 1 in equations and they will offer up a number of proofs that it equals 1.
Both stances are correct in the context of what they are attempting to say.
Our number system is the real number system and within the real number system 0.999... equals 1. It can be used in the place of 1. The number of decimal places becomes less significant the further to the right of the decimal point that you go, so an infinitely repeating decimal becomes infinitely insignificant. What's another way to say "infinitely insignificant"? "Irrelevant". Proponents of the 0.999... equals 1 position will also offer up several proofs in support.
On the other hand, the proofs offered up by supporters of the position are all derived using the real number system. Opponents of 0.999... equals 1 could rightly say that the real number system is limited in it's handling of infinites, so a limited system using imperfect proofs will naturally yield a biased result. In effect an imperfect system is being used to support an imperfect result derived by the same imperfect system.
A popular "proof" I have seen in forums is the notion that 1/3 is 0.333... and 1/3 x 3 equals 1, so 0.333... x 3 must equal 1. But 0.333... x 3 also equals 0.999..., so 0.999... must equal 1. Sounds logical enough, but is it really? 0.333... only equals 1/3 because within the limits of the real numbering system it is defined that way. But if we weren't confined to the limits imposed by the real numbering system we could say the 0.333... is not quite 1/3 in exactly the same way that 0.999... is not quite 1.
Dr. Math's math forum gives more proofs, but once again all proofs are derived using the numbering system that sparked the argument in the first place. The real number system is derived for use in real world applications, however it has it's limitations in the treatment of infinites. In any practical application this limitation has zero consequences, so 0.333... can be used for 1/3 just as 0.999... can be used for 1.
Once people become indoctrinated with the real number system, 0.9 recurring = 1 becomes the only possibility, and "opponents simply don't understand mathematics". For all practical purposes there is no reason to think that 0.9 recurring does not equal 1. So the real number system uses the notion that any convergent series taken to infinity should be taken to eventually reach the number it converges towards. But then you could also argue that 0.9999 (to one hundred places) is adequate for all practical purposes, so why not say that this also equals 1? If we were to limit our number system to 100 decimal places it would.
Does 0.999... equal 1? Yes and no, depending on how you look at it. Within the confines of the real numbering system and in all practical usage it definitely does. Throw away the confines of the real numbering system and try to envisage that string of 9's floating off forever and you can safely say that 0.999... never reaches 1.