I basically need a setup where many touch screen monitors run an application. So instead of hooking up each monitor to a mini-server of it's own, I was wondering if I could run those applications on monitors off of a single server. The application is platform-independent. Any ideas?
Certainly with Linux its possible - the X Window system was designed around exactly that kind of operation although it will probably be significantly simpler to use X-Terminals rather than driving all the screens directly from the host machine (a X-Terminal requires very litle hardware - a gumstick PC is more than adequate).
Would it make sense to run a seperate VM for each monitor - with the VM set to load full screen?
Possible with Linux (check out multiheading), but I suspect it's more trouble than it's worth. You'll be well off the beaten path, and likely to find things that only work under specific conditions and/or are unstable.
I recommend instead getting a bunch of cheap nettop PCs and throwing Linux on them so they're not annoyingly slow to use. I can vouch for Acer Revos (as a HTPC in my case), but you can probably find something cheaper that will work fine for your needs.
Usually touch screens work as mice. So it depends on your application; can you run multiple instances of it at the same time? I have applications will, and I have some that detect it's already open and refuse to open a separate instance.
It also depends on how the application works (if it uses a database in the background or a particular config file, again, it depends on how it does it, it may not be able to have concurrent access for running instances).
Basically test it and see if you can run multiple instances and if it can, you may be able to do it. Touch screens are simply using your finger as a mouse.
Although...this does bring up the question of whether you can have multiple simultaneous mice. You might get the occasional "weirdness" with multiple touches at the same time.
Also, keep in mind that if you have 2 monitors and 2 instances on one system and that system crashes/acts odd/dies, you lose everything. With multiple low end systems at least you have a working node while repairing the other one.