XEmacs was created in 1991 as Lucid Emacs by Lucid Inc. to support their proprietory Energize environment. Lucid forked? the code, developing and maintaining their own version of Emacs, because they were dissatisfied with the maintainance of the original Emacs. Their version of Emacs was very popular, so when Lucid went out of business 1994, the code was picked up by another development team, and maintained under its current name, "XEmacs".
Historically, a lot of features first appeared in XEmacs, but most of them ended up in Emacs as well. By 2001 the difference to the user between these two versions is not that great. XEmacs still has a better X toolkit support, experimentally working with [[Gtk+]] as well. Inline images are available without tricks. Most people think that the XEmacs GUI elements (menubar, toolbar, scrollbars) look nicer. In XEmacs, multi-lingual support is optional, while it is hard-coded into Emacs 20.
A popular myth was that XEmacs did not have proper support for text terminals (or emulators, like xterm?). This was never true, XEmacs always ran without a windowing system, for some time it even had some terminal features (e.g. colour) that Emacs lacked.
Under the hood the differences are more pronounced. Lisp coders that want to have their packages work with both variants (and maybe older versions of these as well) may have to go to some lenghts. For example, XEmacs introduced so called extents, a region of text which can be assigned a number of attributes (colour, font, etc.). Later, a similar but not entirely equal concept, overlays was added to Emacs. Now XEmacs has a compatibility layer implementing overlays via the native extent functionality.
The schism? between Emacs and XEmacs is one of the more visible examples of a [code fork]?, another being the splitting of BSD. Since both emacsen share the same license, code can be transplanted back and forth between them, although due to their differences in implementation, this mainly happens on the Lisp level, much less with C code. There is still a good deal of rivalry between the two camps, which is one of the reasons why only few features remain in only one of the two editors.
XEmacs development happens on three branches: stable, gamma, and beta, with beta being the first to get new features, but being the least tested. In November 2001, the current versions in these branches are 21.1.14, 21.4.5, and 21.5.3, respectively. Future version numbers will follow a scheme similar to Linux, with an odd second number signalling a development version, and an even second number for stable releases.
Version 20.0 was released on 1997-02-09, 21.0 on 1998-07-12.