I think that a good team lead is a strong coder, who speaks the language of their programmers, and also has a good sense of what's important, what isn't, what the requirements are. A good team lead can reason well, communicate those things to the upper management, and can stand up for their developers and for good ideas.
Of all the replies so far (currently, there are 20 replies) this one is the closest to my opinion. The general consensus at the moment seems to imply that a good team leader is a shield that protects the team, but this function has nothing at all to do with leadership, and leadership is the core function of a team lead.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.