Hmm, definitivamente son problemas de codificación, para solucionarlo debes pasar un valor adecuado al momento de crear el objeto de tipo StreamReader.
Si no quieres complicarte la vida, puedes hacer uso de la clase WebClient como inicialmente te sugerí.
Código:
using (WebClient client = new WebClient())
{
string html = client.DownloadString("http://www.lapaginaweb.com");
}
Saludos