KVM machines not shutting down?
If you use the "libvirt" virtualisation abstraction layer, you can ask it to shutdown machines. As with anything, you need to test this - certainly at some point in the past if could even just remove power from the VM in question.
Two things are important, today we've found a third :-)
Firstly you must tell libvirt to use ACPI - in the XML you need a section like this (the <acpi/> is the important bit!):
<features>
<acpi/>
</features>
Secondly you must have acpid installed and running on the VM guest. When you ask libvirt (on the host VM) to shutdown the guest, it makes an ACPI call to the guest, acpid catches this and performs a graceful shutdown, hopefully also powering the machine off (rather than just leaving it at the "system halted" prompt).
The third thing discovered today is that newer kernels have deprecated /proc/acpi/events which older versions of acpid used. In particular, if you are using Lenny and (for example) a 2.6.30 kernel without the deprecated "ACPI_PROC_EVENT" configuration option, then you'll want to install the newer acpid package from lenny-backports. Thanks to Debian Bug #462467 for answering this question.
The value of an open bug reporting system proves itself yet again.