A hard fork is a permanent split of a blockchain brought about by software changes in the consensus protocol that make previously invalid transactions now valid. Nodes running older versions will reject blocks from miners running newer versions because they contain transactions the older version considers invalid. Two competing blockchains emerge, and all users (nodes, miners, and users) will choose between the different mutually-incompatible versions. Presumably, the user base will eventually migrate to whichever ones is considered more legitimate.
It is different from a soft fork, in which only miners decide whether to implement it and it is backward compatible with older versions.
It is considered an extreme approach to upgrading blockchain consensus protocols. The topic received renewed attention during The DAO Wars as the Ethereum community debated forking the network to retrieve funds stolen from the DAO.