Are we talking on a professional or personal level? The two overlap to some extent. You need to do a serious analysis on yourself (perhaps with the help of a trusted friend or colleague) and identify the areas where you need to improve your skills.
But, here's my own list:
On a personal level -- Buddhism Plain and Simple is a good read, even for non-Buddhists.
On a professional level --
Moving up to something like a tech lead means you need more feel for the business side, and your technical reading should be more abstract. You're a professional programmer, you should be able to go from an algorithm to the programming language of your choice with no trouble.
Quality Software Management, Vol. 1 by Gerald Weinberg is good for getting your head around the way technical organizations operate; for better and for worse. I wouldn't worry about the other three volumes for a while.
Introduction to Algorithms by Cormen, et al. We talked some about algorithms and complexity when I was in college, but never in enough detail. I like this book for its rigor, not necessarily its readability.
Design Patterns by Gamma, et al. is another book to get you thinking about programming in more than just linguistic terms.
One other resource worth mentioning -- MIT, Stanford, and other universities have put their core Computer Science classes online. You should investigate those classes in light of where you need to improve.