Just to clarify, as I don't find this in any of the other answers:
DRY is a principle of software development aimed at reducing repetition of information of all kinds.
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
The DRY principle as mentioned by Andy Hunt and Dave Thomas isn't limited to preventing duplication of code. It also advocates code generation and any automation processes. Ironically, the results of code generation could even be duplicate code ...
The reason why has already been explained thoroughly in the other answers, but Falcon's comment sums it up well enough IMHO:
A single point of change is easier to maintain.