While some contractual obligations exist that prevent channels being added (This is definitely the case for ESPN Goal Line/Buzzer Beater HD, Longhorn Network HD and the upcoming SEC Network HD), the reality is that cable in many areas has caught up and exceeded HD content to DirecTV. While quality can be disputed from area to area due to compression, amount of local channels, international programming, etc.
DirecTV has hung their hat on sports, and many of the recent sports channels are not being found on DirecTV. It's certainly disputable if many of these should exist, the most egregious being the aforementioned SportsNet LA, a needless RSN that's causing a black out of Dodgers games for Southern California. But there's something now in almost every region that's suppressing customers in these areas. No Comcast SportsNet Philadelphia/Houston/Northwest. No Pac-12 Network. No SportsNet LA. If DirecTV loses Sunday Ticket exclusivity (and I think it's coming at the very least in the form of an MLB.tv like product for the NFL), they're going to have little to hang their hat on with sports. And sports are one of the few things driving people to subscribe to cable programming, as more options go over-the-top and people go back to antennas.
While DirecTV's HD content is superior to Comcast, it's debatable depending on the channels with just about any other cable company. DirecTV loses to Charter, Bright House and probably Time Warner. You can debate it on Cox and Cablevision as both have their holes.
Some HD channels like WE HD, Esquire HD, Sprout HD, TV One HD and Fuse HD have been on cable systems in HD for as much as 5 years now, and are still not found on DirecTV. Since AMC HD and IFC HD have been added in that time period, it's not contractual there, but bandwidth concerns.
What DirecTV probably should do (and they won't) is to get rid of SD feeds, downconvert the HD feeds for SD subscribers (which is what Time Warner Cable is doing on its new lineups), and repurpose that spectrum for additional HD channels. Unlike cable where many boxes are not MPEG-4 capable, DirecTV has been using MPEG-4 for quite a while.