Often I hear doing a hard reboot (completely powering off a computer and restarting it) as opposed to a soft reboot (restarting by some command in the operating system). What, exactly, are the differences between them? And why is a hard reboot sometimes necessary? Is there a difference depending on OS such as Windows, Linux, or Mac OS X?
A "power-off-on-reset" may affect your hardware negative (e.g. HDD) if you do it very often or don't wait some seconds before switching on again (may affect your power supply).
In general the major difference is that each and every component of you computer is getting resetted on a power-off-on-reset. Making a reboot via software or reset-switch only affects those devices that in some way are getting informed about the restart by a bus system or a reset-signal.
If a component is in a state where it hang so badly that it is not even able to process this reset signal that there is a difference. I had the case of an USB powered smartcard reader with badly programmed Win7 drivers that requires a power-off-on for working again. Of course you don't have to power down the whole PC for resetting an USB device...
Another difference you will get on devices that are only connected to power and to not get any reset-signal. I have the case e.g. with a SATA2IDE bridge that is not fully stable when running 24/7. Every two or three weeks I power it down for making to work stable.