Cost effective has different definitions to different situations.
As has been pointed out, KVM and VMWare ESXi are free. If your time is cheap or covered in the businesses (i.e. this is part of your duties and not tacked on to you) then hey, free! And capable of "mixing them up", as virtualization is virtualization. The OS's shouldn't "know" they're not physically on the same hardware.
On the other hand, if you're running critical business applications, then the lack of clustering and support can bite you in the rear. One server running everything on an ESXi server will mean maintenance takes everything down, or a blown power supply or controller or bad RAM will take out a number of servers rather than just the one. That's where the expensive support contracts or additional licensing comes in handy, so you can have availability and redundancy available when the users are outside the server room with pitchforks and torches screaming for your digital behind on a spit.
Small businesses could probably get away with 2 relatively cheap "white boxes" (google it), systems that are homebrewed but fit VMWare's specs to run ESXi for free, then coming up with a schedule to back up and duplicate VM's from the "production" box to the "backup" box, so if a machine dies you fire up the twin and have users use services from that while repairing the other, or splitting the services so that while VM's 1,2,3,4, and 5 are on both machines, you can actually run 1,2, and 3 on box one and VM's 4 and 5 on the other, firing all 5 up in the event of failure.
Or you can get 2 white boxes, connect them to external storage that gets backed up, and store your VM's on that so you have 2 front-end servers that can dole out VM's from the shared storage (which you'd need for full-blown migration and redundancy anyway in most cases).
I'd definitely want some form of hardware backup in case the server dies.
Otherwise you'll want some support contract or pay for migration, as I don't know if you'd want to learn how to get something like fencing and high availability on production systems. It can be done, though. If you search for "linux high availability" you'll find projects like heartbeat and DRBD that can get something working between 2 or 3 Linux servers with redundancy over Ethernet and it can be coupled with XEN. I'd be nervous about doing it with production systems as my trial by fire, but hey...I don't know how adventurous you are. Otherwise more "polished" tools are available from Red Hat and VMWare and Citrix.