A software appliance is a software application combined with just enough operating system (JeOS) to run optimally on industry-standard hardware (typically a server) or in a virtual machine.
The main distinction is the packaging format and the specificity of the target platform.
A software appliance can be packaged as a Live CD image, allowing it to run on real hardware in addition to most types of virtual machines.
This allows developers to avoid the complexities involved in supporting multiple incompatible virtual machine image formats and focus on the lowest common denominator instead (i.e., ISO images are supported by most Virtual Machine platforms).
In both cases, the primary value to the customer remains the simplicity of purchase, deployment, and maintenance.