Why does the QNH of an aircraft change or need to be changed?
The QNH is the reference pressure of the aerodrome, not the aircraft. It is calculated such that an altimeter, which assumes ISA conditions otherwise, shows the correct altitude above mean sea level at the aerodrome:


  Airfield QNH is obtained by correcting a measured QFE to sea level using ISA regardless of the temperature structure of the atmosphere. As your altimeter is calibrated using ISA, it will indicate altitude correctly at the airfield reference point. At other altitudes, the indicated altitude is likely to be in error, depending on the temperature of the atmosphere.


(skybrary.aero)

The altimeter uses the following formula to compute altitude:

$$ h = c T \log \left( \frac{P_0}{P} \right) $$

Here, $c$ is a constant, $T$ is the temperature (which is assumed to be the ISA temperature, not the actual temperature here) and $P_0$ is the QNH reference pressure. The altitude $h$ is then exactly correct at the aerodrome and also quite accurate above if the actual temperature does not deviate from ISA too much.

The QNH value is typically obtained from the ATIS or from ATC. It is given in units of hectopascals (average value of 1013 hPa) or inches of mercury (average value of 29.92 inHg).

The QNH changes whenever the pressure at the aerodrome changes because the altimeter is using the pressure to determine altitude. These pressure changes are a normal part of changes in weather. You can see an example surface pressure map of the US here:


(image source: Wikimedia)

Note that the pressure values (in hPa) on this map are not the QNH values. These are the current actual surface pressures.