O que é melhor: DataSet ou DataReader?

Acabei de ver este tópico:Datatable vs Dataset mas não resolveu a minha dúvida .. Deixe-me explicar melhor, eu estava fazendo conexão com banco de dados e precisava mostrar os resultados em um GridView. (Eu usei o RecordSet quando trabalhei com o VB6 enquanto o DataSet era muito parecido com ele, então era muito mais fácil usar o DataSet.) Então um cara me disse que o DataSet não era o melhor método para fazer.

Então, eu deveria 'aprender' DataReader ou continuar usando o DataSet? Tabela de dados ? Quais são os prós / contras?