AUCTeX is a package for writing (La)TeX, ConTeXt, docTeX and TeXinfo in GNU Emacs.
AUCTeX is an emacs package for writing documents with LaTeX, TeX, ConTeXt, docTeX or Texinfo. It gives you syntax highlighting, code completion, and also includes preview-latex, which lets you generate and view PNG previews of parts the code directly (e.g. math) in the Emacs buffer.
For working with citations and cross-references AUCTeX works very well with reftex.
One can get a hint of AUCTeX's capabilities by reading Useful shortcuts or key bindings or predefined commands for emacs+AUCTeX.