10 years ago, I loved Hanson and Fraser: http://www.amazon.com/exec/obidos/ASIN/0805316701 This is a good tour of front-end and back-end stuff, a decent intro to code gen, and is built on a hand-written recursive-descent C parser. That it's specific to one C compiler made it better to read straight through, but I rarely refer back to it. So far this year, I've been liking Muchnick: http://www.amazon.com/exec/obidos/ASIN/1558603204 This is pretty heavy on the backend and codegen, which is where my head is at these days. Compilers is a big topic. What part interests you most? Parsing? Optimization? Semantics and error detection? Code generation?
Also recommended in this reply