I've run into the same problem as described here: http://www.spinics.net/lists/kvm/msg27938.html and I don't see that there was a solution posted anywhere for this. I've tried with both 0.12.3 and the latest git version of qemu-kvm and have the same result. VMs that work fine with KVM enabled do not work with the -no-kvm flag. If I remove the boot=on from the hard drive, I am able to boot an ISO image but if I re-add boot=on the system hangs either in loading GRUB or ISOLINUX if I boot on an Ubuntu install ISO. This is happening on multiple machines (all x86_64). On machines without virtualization extensions this happens regardless of the -no-kvm flag.
I did much further experimentation and found that the problem is specific to the boot=on flag. If I disable to boot=on flag, and change the if=virtio to if=ide, the VM boots. It doesn't boot with if=virtio,boot=on or if=ide,boot=on. Again, this is only when in combination with the -no-kvm flag or on a machine without the extensions. The exact same host image (qemu-kvm binary, kernel, everything) works fine on a machine with kvm extensions and the same cmdline. The combination of boot=on and if=virtio worked on these same machines (again both with and without extensions) in qemu-kvm 0.11.0 but does not work in qemu-kvm 0.12.3 or with the latest version in git as of today (2010-03-19).
Hopefully that helps narrow it down. For now I had to modify my scripts so that VMs on non-KVM nodes use the ide driver and remove the boot=on option.