Most differences are of course on the inside. The 747-400 has a completely new 2-person cockpit (as opposed to the 3-crew cockpit on the 747-1/2/300). Other than that: new engines, new interior (I think), extra fuel tanks, and some more smaller modifications. Actually you can say that the 747-300 is just a -200 with a stretched upper deck. The -400 is a completely modernised version of the -300.
In simple terms you could say that the -400 is a -200 which was uprated in just about every respect. New wing, new engines, new fuselage, new flight deck etc.
The new fuselage was probably the easy part, and therefore it was introduced a few years before the other changes, producing the -300.
Best regards, Preben Norholm
Always keep your number of landings equal to your number of take-offs
Further to the issue of the 747-400, the various models of the type have been carefully tailored to the needs of the services which they provide. For instance, the standard pax and combi versions have the winglets and stretched upper deck, the combi also featuring a large cargo door on the aft port fuselage. The all cargo version has the 747-200's fuselage, namely no stretched upper deck (so KLM's 747-300 freighters are the only cargo jumbos with a stretched upper deck), while the fuel savings of winglets on short sectors were considered minimal and hence their deletion on the short range or Domestic model. The common denominators are the new engines and 2-crew flightdeck.