Aegisub is a free, cross-platform open source tool for creating and modifying subtitles. Aegisub makes it quick and easy to time subtitles to audio, and features many powerful tools for styling them, including a built-in real-time video preview.
Some highlights of Aegisub:
Simple and intuitive yet powerful interface for editing subtitles
Support for many formats and character sets
Powerful video mode
Visual typesetting tools
Intuitive and customizable audio timing mode
Fully scriptable through the Automation module