How does Kalman filtering work in inertial navigation systems?
A Kalman filter is used on all kinds of IRU's and INS's, even with airspeed information as in an ADIRU.  A Kalman filter is just a general method (and a very useful one) for state estimation and sensor fusion, which is exactly what's going on in an INS system.  I wouldn't call this "compensation". Inertial naviagation requires us to read in sensor values like angular acceleration, direction of magnetic north, longitudinal acceleration, and even airspeed, then convert those into more meaningful values like ground speed.  If done correctly, these processes (called sensor fusion and state estimation) will minimize errors on all the sensors you feed into it.   That's the quick version.  For a longer explanation of how it works, read on.

Kalman filters are used for sensor fusion and/or state estimation.  State estimation is when the basic physics parameters we want to know like speed and position (called the state of the system), are different from the sensor values we're getting, like magnetic compass readings and gyroscope values.  State estimation problems attempt to estimate these values like speed even in tricky situations like when errors are present or when the state can't be directly computed from the sensor values.  State estimation in Kalman filters can also take into account inputs to the dynamical system like airplane thrust and aileron position to try to improve the accuracy of the model, but this is not necessary and I'm skeptical about how often this is used based on my experience.

Sensor fusion, on the other hand, is when we want to combine several sensors to try and get a sensor that has the best of both worlds.  Sensor fusion and state estimation can overlap. A classic example is GPS and accelerometer sensor fusion.  GPS gives accurate position, but only down to a few meters and may not update at the rate desired. Accelerometers give accurate accelaration values even at small scales, but their position estimate tends to drift over longer periods of time.  By combining the two we can get the precision of INS but with no drift. One advantage of a Kalman filter is that the different sensors being combined don't need to be measuring the same values as long as we have equations for how the sensor values and the internal state are related.  For example, we can combine magnetic compass and gyroscope values even though the two aren't directly analogous. Sensor fusion can also be done with other methods like a complementary filter or Bayesian/Markov methods.

How does a Kalman filter work?  First a Kalman filter estimates the state (say, position and speed) using a system model to predict what the new position should be based on previous values.  This is the new predicted state.  The filter then looks at the sensor values to see what the new position should be based on those measurements.  It then reconciles the predicted and measured position to get a new position estimate based on the fact that both of those values may be inaccurate. The filter does this all including weights based on which errors in measurement and estimation are largest and which errors tend to be correlated with each other.  Note that this includes errors in both estimation and measurement: outside forces and inaccuracies in our model can throw off our prediction step just like bad sensors can affect our measurement step.

Technically the six degree-of-freedom equations often used for inertial navigation are non-linear (which is kind of like saying we can't scale, add, and reorder these transformations and rotations).   A regular Kalman filter will not work in this scenario and the Kalman filter must be a non-linear filter like an extended or unscented Kalman filter.  

Kalman filters have several advantages over other filters like a complementary filter.  In elementary situations they can arrive at an identical solution to a similar complementary filter or averaging filter.  You mention tracking while predicting future values, and I'll explain why a Kalman filter helps.  If our last three positions were 1.0, 1.5, 1.7, and 1.8, a simple filter might average 1.7 and 1.8 or similarly try combine past and current values.  This would produce a lag behind the current value.  Kalman filters (and some simple filters) extrapolate previous values to predict the current value more accurately.  Kalman filters really begin to shine as the system we're trying to track changes in complex but predictable ways.

Simple filters like complementary filters struggle more than Kalman filters when errors are correlated or have different weights.  Kalman filters use weighting in their estimate to compensate for correlation in errors and also to give the most bias to the best sensor values.  For example, if angle of attack and airspeed tend to have the same inaccuracies at the same time, or if the gyroscope is much more accurate than the magnetic compass, the Kalman filter will give the sensors weights to compensate for that. If you're in a situation where you can model the equations of motion, or if you know something about the different types of noise in your system, the Kalman filter is probably more accurate than simpler alternatives.

Despite the accuracy of Kalman filters, I've seen a few places where simpler devices like complementary filters were used instead of Kalman filters.  Why?  The main reason is complexity, which I won't elaborate on too much at this point.