On a FreeBSD box, each time I ran "portmaster -a" it wanted to reinstall the db48 package. This fixed it:
portmaster -o databases/db48 databases/db42
Thanks to Stephen Scotter for pointing me in the right direction with his blog entry, I just had to replace db47 with db42 to get it to work on my machine. After the above command, portmaster -a only installed db48 once more, then stopped with the message ===»> All ports are up to date.