I am a yankees fan, so I think the whole notion of a salary cap is bunk to begin with...and I find it especially amusing that the owner of Red Sox is calling for one (its like the two richest kids on the block arguing). I also highly dispute the notion that "competitive balance" has anything at all to do with a team's payroll - we have some of the best "competitive balance" in recent memory, and there is still a huge disparity in team payroll.
But I think a cap system should include the following provisions:
Teams are required to spend X% *more* than what they receive in revenue sharing (50%? 100%? 200%?). This would establish a floor for team payroll and ensure that teams aren't just pocketing money distributed by the league which is supposed to go towards improving "competitive balance"
Players drafted by an organization, or who have only worn that organization's major league uniform, should *not* be counted towards the cap. It doesn't make any sense to penalize an organization which happened to develop a group of superstars by forcing them out of town because their cap numbers don't work. Teams should be encouraged to keep their young stars...it's really good for everyone (fans, players, owners).