There are just so many good books out there that I really don't have the time to read as many of them as I'd like to, but here's a list of the ones that I have read and enjoyed. Although I have one or two framework type books listed, you'll probably notice that most of the programming books attack the technology at a lower level. I'm a firm believer in understanding how a technology works before using a framework on top of it. I believe that if you truly understand the technology you will be better able to apply yourself to it regardless of the framework, or lack thereof, used.

The C Programming Language

by Brian W. Kernighan and Dennis M. Ritchie
This is where my love of programming began. Strictly speaking you don't need to learn the C language before you learn C++, but learning C first will make you a better programmer of C++. I don't know any C++ programmer worth his salt who didn't learn C first. Once you understand pointers the rest is all downhill.
The C++ Programming Language

by Bjarne Stroustrup
If you're going to learn something there are some very compelling reasons to get the information directly from the creator, especially when that creator actually knows how to explain it. This is an essential reference text for any serious C++ developer.
Effective C++

by Scott Meyers
If you are really really really into C++ and want to know how to use the language at it's most optimal you simply have to read this book. The companion book, More Effective C++ is also excellent, and a digital version of both books can be purchased together cheaper.
Essential COM

by Don Box
Ok, I admit it, I went through a phase where I idolized Don Box. If you want to know what's behind all those helper frameworks and really get to the bottom of COM this is the book that will help you do it. Read it and you'll understand why Don said, "COM is Love."
Effective COM

by Don Box, Keith Brown, Tim Ewald, and Chris Sells
If you love COM read this. Like Scott Meyer's Effective C++, no other book will make your COM development more efficient and accurate.
ATL Internals

by Brent Rector and Chris Sells
When I program COM I do it in ATL. No other COM framework produces code as small or efficient as the ATL framework. It's also a great windowing framework for regular UI applications as well. If Visual Studio had better support for it MFC would cease to exist.
Programming Windows Security

by Keith Brown
Keith Brown has been around for a while and really comes into his own with this book. I actually met him at a conference in Amsterdam back in 1999, but I was Don Box blinded at the time and didn't take the opportunity to talk with him. He's an excellent speaker and writer and your understanding of security will only improve by reading this book. I believe he has later editions for .NET technologies as well.
Programming Applications for Microsoft Windows

by Jeffrey Richter
Another of my programming heros, Jeffrey tackles a lot of low-level information in his writing and really delves deep into code. I have never failed to learn something new and interesting by reading his works.
Programming Windows

by Charles Petzold
Another legend, Charles Petzold wrote the first book for Windows development back in 1988. The proliferation of frameworks made many believe that they didn't need to learn to program at the raw API level, so I really looked like a hero when I came in and knew what was wrong with an application due to my knowledge of what was really going on under the covers. Learn to program at the API level first, then learn the frameworks. For Windows systems from Windows 3.1 to XP this is the book to accomplish the former.
Javascript & DHTML Cookbook

by Danny Goodman
In today's web world it would be very difficult to create a site of any consequence without knowing a little client side scripting. Danny's books are legendary in the industry for explaining just how it all works and how the features are implemented across the different available browsers. This book is especially useful in that it gives you the actual code for at least 175 of the most common tasks, and some not so common. I haven't needed to program a client-side task where this book hasn't helped.
User Interface Design for Programmers

by Joel Spolsky
If you're interested in software management then you've probably already heard of Joel Spolsky. If you haven't then you really need to check out his extremely informative site. This book is just as engaging as his management rhetoric as he tackles the elusive topic of interface design, something no true programmer could love!
It's not the Big that Eat the Small, but the Fast that Eat the Slow

by Jason Jennings and Laurence Haughton
This book is what I call motivational - it doesn't really give you specific items to try or an action plan for your company, but it serves to energize you about the product or service you are selling. Filled with great stories of how small companies made it big over their rivals it's like a Tony Robbins seminar in print.
Code Complete

by Steve McConnell
Not only will your manager love you for reading this book, but so will the team that has to maintain your application after you're gone. You'll love yourself also when you have to look at something you did a long time ago and need to get up to speed on it again quickly. Steve explains in great detail how to code in such a way that your project is understandable to any other developer.
Amit Kalani's MCSD training books There's something about Amit's writing that's just so... readable. I have used three of his books to get certified now and he's at the top of my list for future coursework. He has a lot of samples and requires lots of hands on.