Regarding the different editions of "Effective C++":
The 1st edition came out in 1991, the 2nd edition in 1997, and the 3rd edition in 2005.
As Scott Meyers points out in the Preface to the 3rd edition, the 2nd edition is merely a reworking of the 1st edition, whereas the 3rd edition is essentially a new book:
In 1991, it was reasonable to assume
that C++ programmers came from a C
background. Now, programmers moving to
C++ are just as likely to come from
Java or C#. In 1991, inheritance and
object-oriented programming were new
to most programmers. Now they're
well-established concepts, and
exceptions, templates, and generic
programming are the areas where people
need more guidance. In 1991, nobody
had heard of design patterns. Now it's
hard to discuss software systems
without referring to them. In 1991,
work had just begun on a formal
standard for C++. Now that standard is
eight years old, and work has begun on
the next version.
The 3rd edition contains material on that next version (through TR1) but neither of the previous two editions do.
If you want the gory details of what really changed from the 2nd edition to the 3rd edition, you can look at:
Appendix B. Item Mappings Between Second and Third Editions
(in the 3rd edition). In a nutshell, the 3rd edition is considerably more modern and broad, so it's probably worth buying even if you already own the 2nd edition.