Refactoring: Improving the Design of Existing Code
Test Driven Development: By Example (The Addison-Wesley Signature Series)
The Pragmatic Programmer: From Journeyman to Master
Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series)
Effective Java Programming Language Guide
xUnit Test Patterns: Refactoring Test Code (The Addison-Wesley Signature Series)
Extreme Programming Explained: Embrace Change (2nd Edition) (The XP Series)
Peopleware: Productive Projects and Teams
The Mythical Man-Month: Essays on Software Engineering, 20th Anniversary Edition
This is my reading list for Software Engineers. If you haven't read these books, you shouldn't be allowed to program.
Only one of these books, xUnit Test Patterns is new, and could be debated. Its a great book, but its also GIGANTIC. I put it in because it immediately seems to be the authority on how to write unit tests properly and Every developer needs to know how to write unit tests properly. I do think however, that this one will quickly be replaced on the list, but probably with a 2nd edition that covers more dependency injection techniques.
I suppose its also possible that Effective Java could be debated because its language specific, but too bad.
The rest of them are simply not up for debate. If you don't agree, I hope you combust. That said, if you have anything that isn't on this list that really needs to be, please let me know.
There are many, many, many other books that I've read that are not on this list. I'm sure I'm missing some. I reserve the right to come back and adjust it.