These books are the best books that cover their topic. They are thorough and authoritative. To get a broad base of knowledge, you should read several outside of the areas you normally program in.
Practical Programming - Programming Pearls and More Programming Pearls by Jon Louis Bentley
Databases - Understanding Relational Databases by Fabian Pascal
Project Management - The Mythical Man-Month by Fred P. Brooks
UNIX Programming - The Art of UNIX Programming by Eric S. Raymond, available online at http://www.catb.org/~esr/writings/taoup/
UNIX Programming - Advanced Programming in the UNIX Environment by W. Richard Stevens
Network Programming - UNIX Network Programming (2 volumes) by W. Richard Stevens
Generic Programming - Modern C++ Design by Andrei Alexandrescu
Compilers - The Art of Compiler Design: Theory and Practice by Thomas Pittman and James Peters
Compilers - Advanced Compiler Design and Implementation by Steven Muchnick
Development Process - Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck, John Brant, William Opdyke, and Don Roberts
Typesetting - Computers and Typesetting (5 volumes) by Donald Knuth
Cryptography - Applied Cryptography by Bruce Schneier
Linux - Professional Linux Programming by Neil Matthew, Richard Stones, and 14 other people
Linux Kernel - Linux Device Drivers by Alessandro Rubini and Jonathan Corbet
Open Source Programming - The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary by Eric S. Raymond
Computer Architecture - Computer Architecture: A Quantitative Approach by David Patterson and John Hennessy