The elevation above the ellipsoid (ellipsoidal height) is the elevation above a mathematical model that approximates the shape of the earth. The current most common one is WGS84. These are the elevations that you'd get from a GPS.
Orthometric heights are measured above the geoid or equipotential surface, that is, the surface of equal gravity. MSL is "mean sea level," which is supposed to roughly approximate the equipotential surface, but obviously can't be directly measured inland.
Unlike the ellipsoid, the geoid can't be represented by a function is complicated (see 2NinerRomeo's comment), so conversions have to use a grid shift raster to find the ellipsoidal separation at any given location. NRCAN has a decent page describing this stuff.
If you have orthometric (e.g. MSL) heights, you'll need to transform them using the appropriate grid shift file.
$GPGGA
stream provides 2 sets of altitude data (WGS84 ellipsoid & MSL). It can be very confusing for people who aren't familiar with the two pieces of info. – Branco Aug 4 '15 at 19:39