En general te podría decir que:
db.ExecuteDataSet = Regresa un DataSet
db.ExecuteNonQuery = regresa el nuevo de filas afectadas, por lo regular se usa para los insert, delete y updates
db.ExecuteReader = regresa un datareader (acceso conectado de tipo foward only, y es mas rápido que un dataset)
db.ExecuteScalar = regresa la primera columna de la primera fila, se usa por lo regular para consultas usando funciones agregadas como MAX, MIN, COUNT, etc..
Espero te haya quedado mas claro..
Cualquier cosa por aqui andaremos..