Languages every programmer should at least have some understanding of:
Lisp - because it's lisp, duh
Smalltalk - to actually understand OO
Prolog - it requires a completely different thought process, for better or worse
Haskell - for understanding useful type systems and functional programming
C - because it as low-level as you should ever need