I was asked this question the other day and realized that to give a real answer could take me a little bit of time. In short I don't feel that there is a legitimate need for a salary cap in baseball. At face value it seems like there is a glaring need, teams have drastically different salaries and it often feels like the post season is the same group of teams every year. However I feel that not using a salary cap has made MLB a great example of how well capitalism can work.
Prior to the introduction of free agency there was no real need to discuss the possibility of a salary cap, each team got players through their ability to find and sign amateur players or through trades made with other teams. In 1976 however that all changed. Players where granted the ability to become free agents and seek out contracts with which ever team they chose. That opened the door for more lucrative salaries to players and the ability of teams to buy the talent that they wanted, if they where willing to pay enough.
Since that time the Yankees have established a reputation around the fact that they will pay as much as is needed to win championships. They have had a good bit of success in that regard, since the first World Series was held in 1903 they have a record 27 championships. 20 of those, however, came before the 1976 introduction of free agency, meaning they won nearly 30% of World Series before 1976. Since then they have only won 7. That is more than any other franchise in the same time frame but not as dominant as it may seem, it is only about 20%.
In the 34 years since the introduction of free agency there have only been 9 franchises to win multiple World Series. Of those 9 only the Yankees have more than 2. In 34 years though you have 20 different franchises with at least one World Series win. The NFL has a salary cap and over the same time frame they have only 15 different winners and only 8 with multiple titles.
The idea of introducing a salary cap would be to try and create more parity in the sport by evening out the playing field for free agents. However there doesn't seem to be a need to create more parity at this time. Although the Yankees have more titles than any other team they haven't accomplished that at any more dominant of a pace then they had before free agency came into play, in fact it seems to have slowed them down a bit.
In the early 2000s Bud Selig thought there was a need for a cap and he hired a group of economists to look into the problems. They looked over historical data and found no proof that a need existed. As a result of their failure to find what he wanted, we now have revenue sharing. The current revenue sharing system was created to help some of the smaller market teams produce more competitive teams. The teams that pay the most for players have to give a percentage of their revenue to MLB who then will divide it up to the teams who pay the least. Instead of creating greater parity though and helping the poorer teams out it has helped make it profitable to lose. The Pirates have reported profits every year since revenue sharing despite not having a winning season. Tampa Bay had profits each year leading up to their World Series appearance in 2008.
What MLB has shown through all of this is that there are many different ways to win baseball games. Likewise there are a number of different ways to produce profits for their clubs. The key for the smaller market teams is finding ways to be creative in team construction. The more creative a general manager becomes the more likely the team is to succeed. Introducing a salary cap would take some of the freedom currently available to GMs and potentially slow the growth of the game.
Recently the idea of a salary cap has been in the news again as Kenny Williams of the Chicago Whitesox mentioned his opinion on the matter in relation to the Pujols contract talks. What he says, in a nutshell, is that paying a player $30 million a year is crazy and that is evidence of need for a salary cap. However, if the market is willing to pay the money then I see no reason for Pujols, or anyone else, to turn it down. If the price truly is too high then the market will not pay it and Pujols will be forced to sign for less money than he wants. Introducing a salary cap to say that a player is simply getting payed too much would only cause problems. Similar in many ways to the disputes going on right now with the NFL owners and Players Assoc. The NFL is the most profitable sport in the world and the Players Assoc. feels they deserve more of the profits, but in part because of the salary cap teams can't pay more.
Last year MLB brought in nearly $7 billion in revenue. Teams averaged around $180 million each, with the Yankees making double the average revenue. With that much of a gap in team revenue where would you put the cap? And, if you did put in a cap what purpose would it serve? Players play for the right to be paid for their contributions, putting a cap on what a team can spend most likely would lead to players having to accept less for the same body of work. If you start paying them less eventually it could lead to another lengthy dispute and possible another lost season due to strikes. Allowing each team to decide for themselves how much they are willing to pay, allows for the ingenuity and innovation that capitalism thrives on. It allows men like Billy Beane to revolutionize small market teams. It provides for the romance that makes the game great win a smaller market team pushes for the play offs.