When you join a large organization, you tend to hear HR buzz words like: career development, career progression, succession planning, growth opportunities, etc. Essentially, you are being told that your organization takes a tremendous interest in your career development. In many cases, that is indeed the case (but not always...).
In part, promotions depend on your performance, and fit within the company. However, promotions also depend on your boss and HR's attitude towards helping you move up in the organization!
Let us step back and consider what makes for an ideal manager: generate higher revenues while keeping costs down. That's how you maximize shareholder returns.
Now ask yourself: if a manager can extract the same output (i.e. financial analysis, or excel modeling) from an analyst who makes $100k, why would he be incented to promote that analyst to associate and end up paying $200k for the same excel file??? If the manager's goal is to keep costs down, then he is better off not promoting the analyst, and obtaining the same output for less.