People don't seem to understand that multi-processor boards require software that actually makes use of this feature. For example, many years ago you needed Windows NT 4 and then the apps you ran had to be made to use the multiCPUs (software like 3D Studio Mac for example used the multi processors, but Photoshop did not).
I'll assume XP supports multi-processors, since it's a descendant of 2000 which is a descendant of NT, but I think apps still need to be designed to use the multi-CPUs.
It isn't as cut and dry as that, but you are generally right.
When pograms are compiled, they can either be single threaded or multithreaded. This is not something you can just turn on or off at compile time either: the programs do need to be written with the intent of being multi threaded to (a) get the best performance from it and (b) avoid nasty programmers problems like thread locking and starvation, which will cause a program to lag badly, or worse: crash.
Every program is broken down into processes: ie: the smaller individual parts or functions of the program that make up the greater package. Any program you can think of is broken down like this (unless it is a single process program, of course). Processes are then broken down further into threads (ie: the smaller routines within a process).
A few buzzwords exist to describe systems that can run more than one thread or process at once. We have SMP (Symmetric multi processing). This means two or more unique CPUs that can run two or more entirely separate processes (or threads) at the same time. SMP has an advantage in that if you run an SMP aware OS (WinNT4, Win2K or WinXP Pro (home will not allow SMP for licensing reasons)) you can run two programs that are not multithreaded, and they will both run at full speed (assuming I/O needs are negligable). SMP users often swear by their setups even if they don't run fully SMP software, as the OS has more CPU resources to share around when multi-tasking.
Next is SMT (Symmetric Multi Threading). SMT can intelligently run two threads at the same time. There are a few CPUs that can do this, the most famous being the Intel Pentium 4 with "HyperThreading". On the CPU is a thing called a scheduler. As the name suggests, it schedules the threads to run in a certain order. It's job is to ensure things don't lock up, and that threads that need to run first to give information back to other threads do so. SMT allows a single CPU to break processes down into threads, and process them at the same time. These threads can be from two separate applications, or one application that is Multi Threaded. Win2K, WinXP Home and WinXP Pro all understand SMT for P4 processors. Remeber that the WinXP Home kernel is essentially the same as the XP Pro kernel, so the lack of SMP above is not a physical limitation, but a political one. Just one of the few reasons folks like me dislike the big fat corporates.

But I'm digressing... moving on...
So in the case of MAME:
MAME is single threaded. ie: it cannot be "broken up" to run on mutliple CPUs. People ask why, considering that there are many games that use multiple CPUs that are being emulated. Unfortunately on the real game hardware boards, timing between these CPUs was critical, and often clock-controlled to the Hz. As such, mutli-threading of the software emulation would prove a massive overhead, as you would need very tight control to synchronise everything correctly. The speedup benefits in most cases would be negligable anyway, mainly due to the fact that multi-CPU game boards would have one super fast processor (say, a 3D game graphics processor) and then a slow one too (sound processor, or similar).
AdvanceMAME for Linux is multi-threaded, but again only for "addon" stuff like graphics blitters (eg: high-res smoothing effects and whatnot). So you won't see any games run faster, but what you would see is the game running full speed even if you ran one of the Scale2X or Scale4X effect filters:
http://scale2x.sourceforge.net/snapshot1.htmlSMT or SMP systems running MAME would certainly benefit a user who is multitasking. But I ask, who does that? It's not like I can play MAME *AND* do some spreadsheet calculations. Or play MAME *AND* browse the web, watch videos, whatever. MAME pretty much takes up all of my time (as well as the CPUs) when I play it, and I most often play it fullscreen anyway. And for most of us here, we play MAME in a cabinet, so background resources are negligable, as we either disable them, or don't use them.
Then consider the cost: SMP boards are expensive. The last desktop-level chip that could be run in a dual-processor board was the PIII. After that, Intel split the SMP and single processor line up into P4s and Xeons, and AMD had their AthlonXP and AthlonMP (although XP's could be modded, but you risk blowing things up). After that was the Athlon64 and Opteron.
SMP boards cost a fortune. I can buy an AthlonXP board (with good, fast AC'97 sound onboard) for AU$35 (US$27), and a Sempron 2200+ with heatsink for AU$82 (US$62) or if you wanted cheaper a Duron 1600 for AU$65 (US$49). I'm actually now building cabinets for commercial sale, and we by default throw a Duron 1600 in. Considering that every other cabinet builder is throwing in refurbished PII or PIII systems with 30-day warranties, we can put in brand new hardware that's 3 times faster with 12 month warranties for the same price!
And then you have to pay for SMP CPUs. Old PIII SMP CPUs are usually sold in matched pairs (they don't have to be matched, but often you'll have less headaches if you do). For this reason they seem to hold a bit more value than normal stuff. Outside of that, pricing modern Xeon and Opteron gear quickly pushes system costs into the multiple thousands.
New, bottom-of-the-market hardware is the way to go for MAME. It doesn't cost much, and will save you a bucket of stuffing around.