Wysiwyg

The WYSIWYG module is my favorite for rich text editing in Drupal 6 and Drupal 7. (In Drupal 8, WYSIWYG is in core.) Here's how I set it up.

Better Formats

The best part about this module is that each role can have a default text format.

Drupal 7 core allows for reordering the formats in the UI, thus picking a default too. However, there is no role based ordering, as there is with the Better Formats module.

Field group

"Fieldgroup will, as the name implies, group fields together. All fieldable entities will have the possibility to add groups to wrap their fields together. Fieldgroup comes with default HTML wrappers like vertical tabs, horizontal tabs, accordions, fieldsets or div wrappers."

Media

"The Media module provides an extensible framework for managing files and multimedia assets, regardless of whether they are hosted on your own site or a 3rd party site - it is commonly referred to as a 'file browser to the internet'.

Media is a drop-in replacement for the Drupal core upload field with a unified User Interface where editors and administrators can upload, manage, and reuse files and multimedia assets....

File entity (fieldable files)

"File entity provides interfaces for managing files. It also extends the core file entity, allowing files to be fieldable, grouped into types, viewed (using display modes) and formatted using field formatters. File entity integrates with a number of modules, exposing files to Views, Entity API, Token and more."

Token

Gives replacement tokens. This module is used by so many other modules, you are sure to use it and learn it if you haven't already.