Portimao is a very nice marina, although a bit pricey, but the entrance is big enough to anchor
and very well protected... and the surrounding is beautiful with great beaches inside.
Olhao is also a nice place with the possibility to anchor
in the Ria Formosa
right behind the Ilha Culatra, with nice small bar and restaurants and a small supermarket. The Ria is very well protected too for anchorage.
if you are planning to touch ground further north, I would recommend Peniche, and have a walk around, the scenery is breath taking, also if you can, go and visit Obidos, a medieval town almost intact and if you can afford it, spend the night in the Posada in Obidos.
On the way to Gibraltar
, stop in the Guadalquivir for the night or so, you can anchor there, no facilities tho. Of course Cadiz is a must.
I don't recommend Tarifa as the easterly swell come in and can be dangerous.
I hope it help!!!