When in the Portimao area, especially at Praia da Rocha, you must dine at Adri's.  The food is reasonably priced and you are given a good hearty meal. To top it off, you'll also be given a shot of brandy, one for the Road!  This is located before the Casino.  Open for dinner only and it is located on the north side of the street.

Two other places that make any foodies list are Minar- an Indian spot with decent values.  Also, there's A Mascara- Thai/Indonesian/vegetarian food for reasonable prices