First lets understand what is an Interrupt: An interrupt is a special signal that causes the computer’s central processing unit to suspend what it is doing and transfers its control to a special program called an interrupt handler.
Now coming to your query -
Hardware Interrupt is caused by some hardware device such as request to start an I/O, a hardware failure or something similar. Hardware interrupts were introduced as a way to avoid wasting the processor's valuable time in polling loops, waiting for external events.
Software Interrupt is invoked by the use of INT instruction. This event immediately stops execution of the program and passes execution over to the INT handler. The INT handler is usually a part of the operating system and determines the action to be taken e.g. output to the screen, execute file etc.