This is a contentious issue, and I'm afraid that you won't find a single, universally-accepted definition anywhere. The website in question is using a relatively simple calculation that doesn't really cover all of the variables involved (and rfusca's answer addresses that).
The "most correct" answer (if this was one of those confusing multiple-choice questions with several answers that are partly right) looks at the modulation transfer function (MTF); that is, what size details at what contrast level can the sensor record and translate into pixels. That is, the answer is come by experimentally by taking test pictures (or projecting images directly onto the sensor) and determining what size a pattern needs to be before it's rendered at an acceptable level of contrast and detail.
With a typical Bayer-pattern sensor (or with similar colour-array sensors), this number can never be the same as the number of sensor elements. Since each sensor element records only one colour, its neighbours need to be consulted for colour information before any one pixel's value can be determined. At best, you can expect a "true" resolution that is approximately 1/sqrt(2) of the number of sensor elements/pixels. (The obvious exception here is a multishot studio camera like the Hasselblad 50MS back, which has a Bayer filter but takes four sequential images, each shifted by one pixel, so that every pixel in the image has its own complete colour information recorded along with the luminance info.)
There is also the antialiasing (optical low-pass) filter to consider, when there is one in place. Its job is to deliberately blur the image by a controlled amount in controlled directions to prevent image artifacts (like moiré patterns) from appearing in the image when the size and pattern of the details approach the size and pattern of the sensor elements. That is to say that the amount of detail you are able to record is deliberately limited to less than the bare sensor can theoretically record (the Nyquist limit) by some amount in order to prevent false details from appearing in the output image. This overlaps somewhat with the resolution you're losing due to the colour array filter, so the effect is less than cumulative. (That is, you can't just multiply the colour filter array loss by the optical low-pass filter loss and come up with a number.)
At best, a Bayer-pattern sensor will only have about a 70% data-to-pixel ratio. Monochrome sensors, whether manufactured that way or as the result of an aftermarket modification, as well as Foveon-type sensors, when not "choked" by an optical low-pass filter, approach 100%. (At exactly 100%, you can never be sure whether you're seeing the real data or an aliasing artifact. That's a fundamental problem with discrete data; all you can do about it is hope - or ensure - that the data you are recording is "bigger" than the buckets you are recording it in. And that's why very high-resolution sensors can get away without optical low-pass filters in most instances - you are rarely recording anything that has a repeating pattern small enough to cause a problem on the one hand, and the lens itself will lend a certain amount of low-pass filtering to anything that isn't very sharply in focus.)
There are other things that will influence the amount of real detail you can record as well, such as the inherent noise of the sensor and reading circuitry. Since the "effective megapixels" depends on you actually being able to see details in the image, anything that can't be easily distinguished from noise doesn't really count. With a very noisy sensor, it may take the cumulative data of several neighbouring pixels before you can objectively determine what constitutes image information. That's not a horrible thing, necessarily; Nokia is using a tiny 41MP sensor in some of its devices to produce 5MP images, which allows it to have an effective "digital zoom" while embracing all of the data losses.