I recently "cross-graded" from i386 8.0 to amd64 without reinstalling.
It's not as simple as a cross-buildworld and install, though. You need to be running in 64 bit for an installworld to work.
Fortunately, booting an AMD64 installation DVD and mounting the liveFS in fixit mode is the solution.
First, back up everything. Just because I succeeded doesn't mean I'm right (or not forgetting a step or two here or there). Next, boot up the DVD, go into fixit mode with the liveFS.
Once you are running in fixit mode with the livefs, give yourself a chrooted shell on the livefs root, mount devfs on /dev, then fsck and mount all of your system's actual disks on the livefs' /mnt directory.
Next, perform loopback mounts of your systems /tmp, /var/tmp, /usr/src and /usr/obj on their respective directories in the livefs (so /mnt/tmp to /tmp, for instance).
Now, cd /usr/src && make installworld DESTDIR=/mnt && make installkernel DESTDIR=/mnt
and stand back.
There is currently a...bug? misfeature? not sure... where /libexec/ld-elf.so does not get updated by an installworld. You need to cd /usr/src/libexec/rtld-elf && make install
Now you should be able to reboot into multiuser mode.