A virtual appliance is a generic term for an application delivered as a prebuilt unit.
vApp is a VMware specific term for an application encapsulated within a vApp pool (which works on both hosted and hypervisors). The vApp can define a number of specific things about the appliance, such as performance/resource pools, IP address allocation policies, firewall requirements, etc.