Are there any open source applications that provide a set of features similar to that of Amazon EC2 or Rackspace Cloud? Basically, I want a tool that I can install on one or more servers that works with a virtual machine monitor like Xen and lets me create, destroy, and clone virtual machines on the fly using some sort of API.
Similar to what other posters have mentioned, I would recommend Eucalyptus. It can use either Xen or KVM to manage virtual machines through the same Query API that Amazon EC2 provides. It also provides an S3-compatible service for storing files in buckets named Walrus. In case you need proof that you can run it over Xen, here's from the config file for Eucalyptus:
# The hypervisor that the Node Controller will interact with in order
# to manage virtual machines. Currently, supported values are 'kvm'
# and 'xen'.
HYPERVISOR="xen"