If you get a new CPU, and/or new motherboard, you don't need to reinstall Linux. The OS is on the hard disk only, and nowhere else. And running something like Ubuntu, means the kernel and drivers & hardware detection are pretty decent, and pretty generic, so when you boot up with your new hardware, the OS should be able to deal with any changes that are present from the new hardware.
NOTE: This advice assumes you are not changing architectures, like for example going from 32bit to 64bit, or from something like x86 to S390 or some other thing; if you go from an old AMD CPU to a new one, or an old Intel CPU to a new one, or even an AMD to an Intel or vice versa, there should be no problem, provided the 32/64 bit-ness is the same. If you go from a 32bit system to a 64bit system, your Ubuntu will still boot up as a 32bit system, unless/until you upgrade (by reinstalling) to the 64bit Ubuntu.
FOr the record, I did the same thing a year and a half ago; bought almost a whole new machine, plugged in my old hard drive where my Linux was installed, and presto -- booted right up. Just be sure you connect your hard drive to the same connector on the new board, if possible: if your Ubuntu is on /dev/hda4 for example, then be sure to connect the HDD onto the new mobo on the first HDD connector (HDA).
As for what you should purchase, I'm not going to go into detail at this moment, but probably many folks will have suggestions and ideas if you're looking for them; I will say though, (IF I'm remembering correctly) that your 184-pin DDR400 RAM will probably/possibly not be useful any longer; there's a good chance the new mobo will have a higher pin-count for its RAM slots, but if it does have the same pin-count, you're in luck
and you can use it again.