The Pragmatic Programmer – by David Thomas is a bit of a classic (1999).
I read it way back, when it was still somewhat new, and decided to re-read when I subscribed to SafariBooksOnline (my review of the service).
It is still pretty good still after all those years. While I do use most of the practices they suggest on much of my work, there were plenty of useful tips and reminders.
And if you haven't read it, it is very much worth for the dozens of practices you might not be using yet. It does feel a little dated, and many of the practices that were uncommon at the time are very common today. Some bits are almost funny, such as the lack of Refactoring tools outside Smalltalk, or the suggestion of using USENET private groups for communication, but these are the exception.
Overall, strongly recommended for anyone that want to be a better programmer.