In reply to JR: I am mostly just agreeing with what other people have said but here goes:
Chefchaouen (there are about 100 different spellings, all of them are correct) is fantastic. It is a small town in the Rif mountains with a chilled Mediterranean feel to it. This place is a must visit especially as you are not going during peak times. While you are there, be sure to visit the Ashour waterfalls. Out of peak times, you can find your own secluded pool in the river and swim/laze about all day without seeing another person. There are also plenty of walks and some climbing around there too. If you are on a budget, I would recommend the Pension La Castellana to stay in. It is about a fiver a night and the staff are very friendly, always offering you tea, shisha and dinner.
Marrakech is great but it is the exact opposite of Chefchaouen. It is all hustle and bustle, plenty going on. Eating in the djmaa el fna (sp?) is a must even if some people will tell you to stay away. I would recommend staying in the medina, it is where most things in Marrakech happen and there are plenty of hotels for all budgets but be prepared to get lost while finding the right one. If you want to visit the new town, it is only a 20p bus ride away. The Cascades d'Ouzoud are a good day trip from Marrakech if you want more swimming/sunbathing. Be sure to go down the right hand side and be prepared to walk off the path if you want to find some of the quietest, most beautiful pools.
Fes I wasn't so taken with, it is vaguely simillar to Marrakech but we didn't enjoy it as much. Other people we met preferred Fes to Marrakech though. The locals in Fes are also notoriously pushy towards tourists.
Erg Chebbi is definitely the place to go to see the desert for large, beautifully coloured sand dunes. Make sure you spend at least one night under the stars. Watching the sun rise over the dunes is hard to beat.
Essaouira is a beach/fishing town which is again a really chilled place that I can easily spend lots of time at. There isn't a huge amount to do if you aren't in to water sports but I would recommend it as somewhere to go after the madness of Marrakech. If you are allowed to go out to the island at that time of year, definitely do it. It is closed for part of the year to allow wildlife to nest.
The Todra Gorge is a great place to visit and there are some good walks through the mountains. Take a better map than we did, you don't want to be spending the night under the stars! Our walk also included some unintended climbing after our path led us over a cliff.
There are some great walks and villages around Toubkal but I can't remember any of their names off the top of my head. We went with a local guide and spent a week walking in the area before ascending Toubkal which was great for seeing the area and culture but you could easily do it on your own with a decent map.
I didn't especially enjoy Tangier but then we did arrive there at 4am and also almost missed our bus away after we ended up having to climb down the cliff from the medina to the port with our backpacks on when the path we had banked on getting us there in time stopped half way down. (bit of a theme here
)
There is plenty of budget accomodation everywhere you go and there is great food at incredible value too.
While you are there, everyone will be incredibly friendly all the time. Most are just being friendly but there are also a few who are just looking for any way to make some money out of you so keep your wits about you and be prepared to haggle for everything.