Microsoft Speech API, if you have the right voices (you can buy them, free voices are often of poor quality. Windows ships by default with an English voice).
You can find some free SAPI voices here.
You can listen to Loquendo TTS to hear the voices quality.
TTS is really easy with SAPI (when set, it's a one liner).
There's a .NET port :
The .NET 3.0 Framework has included a
managed speech API, System.Speech.
This allows you to rapidly create
speech-enabled Windows applications
for Windows Vista using Visual Studio
2005. As with all versions of SAPI, this version is dependent on the
operating system. SAPI 5.3 is only
available on Windows Vista. As with
previous versions of SAPI, your
application can run on earlier
versions, such as Windows XP's SAPI
5.1, however, if your application uses any features specific to SAPI 5.3,
expect a not-supported error.
The two main namespaces to become
familiar with for .NET speech-enabled
applications are
System.Speech.Synthesis and
System.Speech.Recognition
http://reddevnews.com/articles/2007/02/15/give-applications-a-voice.aspx