In baseball there's a pretty strong correlation between spending and winning over the last 20 or 25 years. In the short-term it isn't AS great because a lot of teams are curtailing payroll with the luxury tax and revenue sharing programs. Boston and Detroit have massive payrolls and so does St. Louis. The Mets have a middle-of-the-pack payroll because even though they're in NY, their ownership was involved in the Bernie Madoff Ponzi scheme. (I don't remember what came of that). There are always exceptions (like Tampa Bay and Oakland) AND teams that spend a lot and lose (cough, LA Angels), but having more money to absorb guaranteed contracts is generally a good thing.
Salary caps don't really benefit players. They benefit fans by creating parity (although there really isn't parity in the NBA. There's more in the NFL and MLB than the NBA).
The NFL is unique because the league basically shares all revenue. They have an ownership group that understands how to run a league. The season is short, every team is competitive, every game is an event, and lots of games are close, and the rules are designed to put the parts of the game that people want to watch at an advantage. The most important factor in the NFL cap is you don't get stuck with mistakes because contracts aren't guaranteed.
The NBA salary cap is unique because it contains a max salary. As a result, players have more incentive to team up and it's creating 4 types of players: Max player, exception player, rookies (draft pick contracts) and everyone else is making the minimum.