I see you read Kent Beck's TDD book. A good follow-up might be Roy Osherove's "The Art of Unit Testing." I found it to have a lot of pragmatic, practical advice. It's not the final word, but it is a good next step after Kent Beck's book. It has some C#-specific material, but that stuff is interesting to read about even if you're working in other languages. Lot's good suggestions in this thread, here's one I didn't see: "Software Runaways - lessons learned from massive software project failures," by Robert L. Glass.
Also recommended in this reply