What's the difference between the PostgreSQL packages provided by Debian/Ubuntu and by the PGDG apt repository?
Pretty little, actually. The PGDG packages are built from the same source as the Debian packages (Ubuntu is using the same source for the PostgreSQL server packages as well). We try to follow Debian unstable's versions as close as possible, i.e. the packages available here are the same, just rebuilt with a ".pgdg" appended to the version number. We are also using the same postgresql-common infrastructure packages.
Should I use Debian/Ubuntu's packages, or the PGDG packages?
Debian and Ubuntu only ship one PostgreSQL server version per release. For example, there is only PostgreSQL 8.4 in Debian Squeeze/6.0. If that is the version you want, use it. There is no real difference. If you want a different PostgreSQL server version, use the PGDG packages.
Same goes for extension module packages, except that we are updating to new upstream versions (following Debian unstable), while Debian/Ubuntu will only accept patches for critical problems in a released distribution.
What about Debian backports?
[Debian backports] provide newer package versions for released distributions, similar to what the PGDG apt repository does. The scope of the backports archive is strictly limited to testing -> stable, and stable -> oldstable backports, though. The PGDG apt repository provides a broader range of available packages, and Debian version/PostgreSQL version combinations than what would be possible to provide on backports.
Similar to the previous FAQ question, if the package you want is available on backports, there is nothing wrong with using it.