The difference between a soft fork and a hard fork is the type of update establishing the fork. The hard fork is generated by an update that makes previous invalid blocks valid, thus an expansion of the rule set. The soft fork is when previously valid blocks become invalid, thus a contraction of the rule set for the blockchain.
Some of the reasons why a hard fork is created are when there is a clear update, the community of miners/nodes need to update or be left behind and it is democratic. More invalid blocks that become valid can be appended to the blockchain without having to send transactions back to the mempool.
Some of the risks involved with a hard fork are splitting the chain and the community, the possibility of creating a new currency, and reduced hash power may lead to a less secure blockchain.