cross compiling between i386 and amd64 is best done from a amd64 system with a i386 chroot.
you can cross compile directly via -m32 but its more error prone and can be difficult if the lbiraries you need are not available in i386 form (though that has improved greatly in newer versions of ubuntu).
easiest way to set it up a chroot is:
you can also build other architectures (armel, powerpc, ...) via emulation, but its slow.
pbuilder-dist <distribution-of-choice> <architecture> create
pbuilder-dist <distribution-of-choice> <architecture> login --bindmount /working/folder/
#do your stuff