What causes inaccuracy over time on a DMM?
The DC volts reading on a DMM is typically dependent on two things- the DC voltage reference and resistor ratios (for most ranges). Both of those drift with time. 

AC volts is similar. Current is dependent on absolute resistor values as well as the reference and (probably) resistor ratios. All those drift with time. Ohms is mostly dependent on the absolute value of a reference resistor. Again, it drifts with time.

Wherever I mentioned time, also include humidity, mechanical stress, air pressure etc.

The actual physical reasons for the change with time might be impurities in the device, migration of metal or something else entirely. There seems to be a natural law that real things have a 'noise' (power spectral density of noise to be specific) that has a 1/f characteristic, which is typically what we call drift with time. This has been observed in many natural phenomena. You'll see this characteristic in op-noise too. 

How do you calibrate a DMM? Keithley, Fluke and others will be happy to sell you a calibrator which will provide outputs you can use to calibrate your DMM. Of course the calibrator drifts with time too, but less than most DMMs because it's frighteningly expensive and uses very good parts and good techniques to reduce drift. Still, there will be a calibration period that you should have it calibrated by a lab. Their references they use to calibrate the calibrator also need to be calibrated, and they should be traceable to some internationally recognized standards lab such as NIST. If this is done properly you can trace the calibration of your $100 meter back to the standards lab (doesn't mean it will be accurate or reliable, but it should ensure that 1,000 DMMs are not calibrated with a 1.999V reference that is off by 5%.