Undervolting is changing the voltage to a lower voltage. Since power used is based off the square of the voltage, a small change in volatge can mean big power savings. But of course it can't run as fast.
Underclocking means turning down the speed (clock speed) that the miner runs at. This can be done usually without touching the voltage. Typically most people try to run the fastest clock as the lowest possible voltage needed to get them to the desired clock.
Undervolting will significantly increase the efficiency per watt, you may not necessarily see a decrease in hashrate.
Underclocking will significantly decrease the hashrate, you may not necessarily see a increase in efficiency.
When a retailer like Intel ships a CPU, it has been tested to see what is the minimum power need to run at a certain speed (part of the binning process). They bump up the power used by the chip just to ensure stability. A lot of people who are enthusiasts run at stock speed and just lower the voltage. If you don't like tweaking, Intel sells variants like the 3470S which is a low power version of the 3470 which they have tested to be able to run lower voltage and be stable.
Most miner companies will bump up the power just for stability in higher temp areas.
Hashrate would be lower if the voltage is not adequate for performing the compute function without error. For computers, people use burn in tests like Pi-24 or Prime to confirm the system is stable. For a miner you could just keep dropping the voltage until it becomes unstable, then raise it a little to guarantee stability.
End users have time to do this, typically companies don't.