Binary packages are created using the ports tree.
When a new FreeBSD release is made, the ports tree is frozen (no updates to the tree allowed), and binary packages are built. For example, the tree was (mostly) frozen recently in preparation for 9.0-RELEASE, and 9.0-RELEASE packages will be built shortly. These are stored on the FTP server in the 9.0-release packages directory. These (most likely) won't change for the life of 9.0-RELEASE.
Once the release is done, the ports tree is thawed, updates are made, and life continues on. When 9.1-RELEASE is about to be released, the tree will be frozen again, new binary packages built based on the state of the ports tree at that time, and the packages put on the FTP server in the 9.1-release packages directory.
And so on.
There's also a 9-STABLE packages directory on the FTP server. The packages in this directory are built on a (roughly) monthly-ish schedule, based on the state of the ports tree at the time the packages are built.
So, if you want to always have the same versions of software, you use the 9.x-RELEASE packages on your 9.x-RELEASE system.
And, if you want to have (occasionally) more up-to-date versions of software, you set
PACKAGESITE environment variable to point to the 9-STABLE FTP directory. See the
ports(7) man page for information on how to do that.