Código POST HTTP canônico?

Eu vi muitas implementações de envio de um post http, e admitidamente eu não entendo completamente os detalhes subjacentes para saber o que é necessário.

Qual é o código sucinto / correto / canônico para enviar um HTTP POST em c # .net 3. 5?

Eu quero um método genérico como

public string SendPost(string url, string data)

que pode ser adicionado a uma biblioteca e sempre usado para postar dados e retornará a resposta do servidor.

questionAnswers(3)

yourAnswerToTheQuestion