Let's consider "Stratus" as a proxy for both Fault Tolerance and High Availability, supplied in both hardware and software. Assume, for the moment, that they are not the only such vendor.
Whole-machine virtualization, as opposed to things like a Java VM, separates software state from hardware state, by wrapping up an operating system and all the applications running on top of it into a neat container. Once you have that container, it becomes easier to accomplish things like HA and FT. Hardware-layer and hardware/software-layer HA and FT solutions like you traditionally bought from Stratus accomplish the same thing, but without as strong a separation between hardware and software. Keep in mind, however, that there's a fairly murky boundary between these things, that's becoming murkier all the time, as Stratus and others move toward virtualization techniques to accomplish those things that used to be done entirely with hardware.
Pretty much all the major virtualization packages can give you HA. This is accomplished by storing the virtual machine files (both configuration and disk images) on something that all members of a host cluster can access. This might be a file server or a SAN, or something somewhere in between. If something goes catastrophically wrong with the physical machine hosting your VM, another member of the cluster picks up that VM and runs it. The guest OS sees a crash and reboot. It's offline for not much longer than it takes the OS to boot. If a problem is not catastrophic, you can move the running VM (called Live Migration or vMotion) to another host and avoid the problem.
Actual Fault Tolerance is a little slipperier. You have to decide what it means to you. If it means that you tolerate a single network cable being kicked out by a maintenance person, then you can get that through NIC teaming. If it means that you tolerate a single power supply failure, you might buy a machine with redundant power supplies. If it means that a catastrophic failure of a host doesn't take the workload offline, as many people interpret it, then only a couple of hypervisors can currently give you that, and the ones that can will do so at a fairly high cost in terms of performance. They work either by running the VM in two places at the same time in lock step, or by taking thousands of snapshots of the VM per second and shipping them to another host, waiting as a standby.
Hardware is generally faster, but much more expensive.