I have been asked his question quite often, so here is a public answer.
A warning: any answer to "Where should I go in Brazil?" is completely subjective. Some people will send you to locations where a friend owns a pousada, or a tour where they'll get a commission. I have a day job and don't need to misguide tourists to make a profit.
I have traveled extensively in Brazil, but I admit that I haven't been everywhere. Still, I'm including in this list two places I have not visited but have been highly recommended to me by trusted friends.
In the end, you should plan your trip according to what you enjoy, and not what other people or guidebooks recommend. If you don't like museums, don't budget time for museums! If you enjoy nature, then by all means skip cities. Bottom line: it's all up to you.
So, for a three month trip around Brazil (which is the typical visa), these are the places I would definitely visit. The number of days indicated to the right includes travel time.
1. Rio de Janeiro and Ilha Grande (perhaps Parati) - 10 days
2. Ouro Preto and nearby colonial towns (Tiradentes, Mariana) - 4 days
3. Salvador (and nearby beaches) - 6 days
4. Chapada Diamantina (Lençois, Bahia) - 6 days
5. Pernambuco (Recife, Olinda, Porto de Galinhas, Itamaracá, Carneiros) - 8 days
6. Lajedo de Pai Mateus, Paraiba - 3 days
7. Praia da Pipa, Rio Grande do Norte - 4 days
(Fly from Natal or Fortaleza to São Luis)
8. Lençois Maranhenses, São Luis and Alcantara - 6 days
(bus/fly to Belem)
9. Boat from Belem to Santarem, Alter do Chão river beach, jungle trip - 12 days
(fly to Manaus, then fly to Brasilia)
10. Goias Velho, Pirenopolis, Chapada dos Veadeiros (Alto Paraiso) in Goiás - 10 days
11. Pantanal (Cuiaba or Campo Grande) - 6 days
12. Iguazú - 4 days
Of course, you could spend less or more time in any these places.
You'll see that the above doesn't add up to 90; that's intentional to allow some freedom (e.g. stay an extra day somewhere, a bus/flight delay, etc.) My time budget is always generous to allow for improvisation, last minute changes and travel delays.