It's not much of a debate to me. The NFL has a great system in place to ensure competitive balance and I sure find it to have more parity than the NBA.
As others have stated, look at the string of different Super Bowl champions over the past 25 years. You see a lot of different teams in there and in their salary cap era ('92 or '93 & beyond), there's just more parity. That's not to say there hasn't been some great teams either, (Broncos, Packers Rams, Patriots come to mind).
I certainly think the hard cap has played a role in that. However, I think there are several other factors to consider.
-NFL scheduling- This, to me, plays a HUGE impact on creating some parity and competitive balance. You finish 4th in your division? You're playing a 4th place schedule the following season (in addition to your divison and intraconference opponents). This has helped teams bounce back and even created some surprised division winners.
- Single game elimination- Certainly creates much great risk in the playoffs as opposed to best of 7 schedule.
- Team game aspect- Football is much more team oriented than baskeball. You can go miles with a superstar in the NBA while that isn't necessarily the case in the NFL. (See Barry Sanders). That's not saying that you don't need supporting casts in the NBA, though. You need more of a "team" to succeed in football than basketball. 11 guys on each side plus special teams. The onus is on NFL teams to supplement their stars much more heavily.
- Injuries- Obviously losing a superstar is devastating to an NBA team as well. However the NFL is a high contact sport than is more conducive to serious injuries. How many times have we seen a NFL team's season derailed by injury a season after going relatively serious injury free? Year to year, its major factor.