Finding out why a package was held back with apt

I recently encountered some issues on a QA server where a package was being held back, accompanied by this extremely unilluminating error message:

# apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  xxx

Thankfully in man apt.conf there is a useful note:

Debug::pkgProblemResolver enables output about the decisions made by dist-upgrade, upgrade, install, remove, purge.

This is actually extremely useful and produced great output (you would hope that this is noted in bright flashing lights somewhere rather than just being a tiny footnote in man apt.conf, but eh, whatever).

# apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Starting
Starting 2
Investigating (0) xxx [ amd64 ] < 20140204021317 -> 20140210014106 > ( misc )
Broken xxx:amd64 Depends on yyy [ amd64 ] < none > ( none )
 Try to Re-Instate (1) xxx:amd64
Done
Done
The following packages have been kept back:
  xxx
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.