As downscc mentioned, wikipedia is a pretty good place to start but here is what I know:
747-400 - this is the base model, standard max take-off weight (MTOW), standard seating anywhere from 300ish to over 400 depending on the airline and standard fuel capacity.
747-400BCF - this is a base model that was converted into a freighter. Same MTOW, same fuel capacity, same everything just with cargo and no passengers. (visual difference from base: no windows, and main level cargo door)
747-400D - this aircraft was designed specifically for the Japanese market, it is a base 747-400 with a reduced MTOW. As most airports charge based on MTOW, this aircraft was cheaper as a people hauler from Tokyo to Sapporo where it didn't need the range. (visual difference: No winglets)
747-400ER - this aircraft was designed to operate MEL-LAX almost exclusively for Qantas. It is similar to the base model but with a higher MTOW and additional fuel tank in the tail. (Visual Difference: Larger wheels I think is the only thing you can see)
747-400ERF - this is the same as the 400ER just for freight so it has the shorter hump. (Visual Difference: No windows, shorter hump, nose cargo door, and main level cargo door, and once again, larger wheels)
747-400F - this is the freighter version of the base model. Visually very similar to the 400ERF but without the extra MTOW and fuel tanks (Visual difference: Same as 400ERF just no big wheels)
747-400M - this is the combi version, designed for KLM I believe but used by a few airlines. It looks just like the base model but it has a main level cargo door and has a significantly lower seating capacity but has more cargo hauling ability.
I think that about sums it up.