Since I'm always forgetting, some useful commands to run semi-regularly:
sudo port clean --all inactive
sudo port -f uninstall inactive
That's assuming, of course, you don't want to keep the old packages or distfiles around in case the new version goes crazy.
I do find that a good "sudo rm -rf /opt" followed by reinstalling everything I still care about is required; MacPorts occasionally loses its mind and it's less work reinstalling than trying to clean it up.
Maybe now this will be cemented in my brane, like the bash foreach post finally worked. Incidentally, that is hands down the most-often hit post on this site, just going to prove that you never know what people will want.