Basic idea of what I'm trying to do:
I'd like to setup a virtual staging cluster for a website i'm working on. Ideally I'd like to make a change, fire up and deploy it to the virtual staging cluster, then bring down a sample of data from production so that I can throughly test before doing a production rollout. When I was done testing on the virtual staging cluster I'd like cluster to go away (ie- remove/delete the VMs so I can also test from fresh installs)

My ultimate goal:
My goal is to automate the process of setting up and tearing down the entire virtual cluster. Eg- like running a script on the server hosting the VMs that would create or delete all the VMs. Does anyone know if this could be done with existing virtualization solutions? I'm also open to discussion and tips about how you or your organization does this.

fyi- If I can get that far the virtual servers should be able to bootstrap themselves anew with PXE and debians FAI, and then puppet will finish the setup job.

Also, you might have a look at ganeti - it can also work with xen, kvm and maybe libvirt is also implemented in the meantime - if you need more VM's than a single machine can handle, this is very interesting because it'll helkp you also with things like file deployment and running commands on the virtual systems.