Although I confess to teaching classes on ethical leadership, I'm not sure if leadership itself can be taught, at least not in a classroom.
The subject is like swimming. You can study treading water and the techniques of certain strokes for weeks, then jump in the lake and drown. Leadership is best learned by leading but as with immersion language training, instruction and monitoring must accompany the practice.
Simple buddy systems can be very helpful if the buddy is a decent leader. Unfortunately, some buddy systems only result in the passing down of bad habits.
With any system, the organization must have a tolerance for mistakes. For example, following major projects with "lessons learned" sessions signals that lessons can indeed be learned from even the most successful of actions. Following projects with "search and blame" inquisitions simply causes people to hunker down or flee.
Another key factor in learning leadership is acknowledging that it is a responsibility, not a caste. All team members have leadership responsibilities at certain times and they either perform them well or not. Treating leadership as a non-caste activity encourages individuals to search out the opportunities for leadership in their jobs. Those opportunities will involve achievements and blunders. The blunders often provide the greatest lessons and every day can become a workshop.