ALLPlayer is a popular program that allows you to watch movies with subtitles.
It will play all known media formats and includes an implemented LiveUpdate function so that you always have the latest codecs on hand if there is a problem opening a movie file. This program will also automatically search out matching subtitles in all languages.
The difference between ALLPlayer and most other players is that it's not merely an overlay for MediaPlayer, and it uses DirectX, making it possible to play any movie. It is also integrated with a speech synthesizer application, which will allow you to watch subtitled movies with a reader (dubbing).