I'm not sure exactly how it would work, but just fix it so the league parity becomes like that of the NFL, where the talent is, for the most part, evenly spread out and markets like Green Bay can keep their star players. A hard cap would be a start. An increase in the luxury tax is just a bandage on a gash.
A hard cap would solve nothing- Lebron, Wade, and Bosh all fit under the salary cap when they signed there, and most teams (including small markets) spend more than the salary cap every year. Plus, it would magnify the problem by not allowing small markets to offer more money to re-sign their own players. Like I said, a hard cap would absolutely ruin teams like the OKC Thunder because they would have no way to re-sign guys like Harden and Ibaka.
Perhaps you could make an argument for a franchise tag deal, but in practice that would probably end up just dragging the insufferable Dwight Howard situation out even longer. And even the NFL's franchise tag doesnt solve the problem of star players leaving for bigger markets (Julius Peppers comes to mind).
Fact is, the NFL doesnt really offer solutions because there aren't 22 starting positions to fill in the NBA. Hell, the NBA's last CBA was specifically designed to solve this problem, by making bird rights a more significant advantage (so players can make more money by re-signing rather than leaving via free agency) and the harsher luxury tax (which has yet to kick in and which IMO will be more effective than people think)