This is what I've used before, can't recall where I found it to give proper credit. I use the stringbuilder to run regex on later.
C#/ASP.NET (Tested only under 2.0)
        string url = "http://www.somesite.com/page.html";
        WebRequest req = WebRequest.Create(url);
        // Get the stream from the returned web response
        StreamReader stream = new StreamReader(req.GetResponse().GetResponseStream());
        // Get the stream from the returned web response
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        string strLine;
        // Read the stream a line at a time and place each one
        // into the stringbuilder
        while ((strLine = stream.ReadLine()) != null) {
            // Ignore blank lines
            if (strLine.Length > 0)
                sb.Append(strLine);
        }
        // Finished with the stream so close it now
        stream.Close();
        string results = sb.ToString();  //replace 'string results' with 'return' if u are calling it.