I'm not familiar with the arguments for and against a salary-cap in baseball, but in the NHL (my primary sport) it has done a great job of making the teams relatively even. There's no equivalent to the Pittsburgh Pirates in the NHL - the worst teams last year were in the playoffs just a bit before.
I am not sure that buying talent helps the top teams as much as it pushes the worst teams down by making it impossible for them to afford to keep their talent.