Keeping the ports tree up-to-date is a big concern for FreeBSD users. Kris Kennaway posted a comparison of 'make index' and the portupgrade command 'portsdb -U'. Already one change has been made to the portupgrade port to address Kris' findings.
Dru Lavigne wrote articles about Ports Tricks, Portupgrade, and Cleaning and Customizing Your Ports. Michael Lucas and Dan Langille have also written articles on using the ports tree. This thread in the freebsd-ports archive discusses ways to keep ports trees up-to-date on multiple machines.
Update": This post reminded me of how to create your own packages in FreeBSD. To create a package with all of its dependencies, change to the directory of the tool you wish to build in the /usr/ports tree. Once there, running 'make package-recursive' will create a package from the ports tree and all of its dependencies. They will be stored in the /usr/ports/packages/All directory.