Both options are equally feasible.
My partner often goes up to Porto from Lagos to teach. She takes the train. The only problem is that the first 60kms from Lagos to Tunes Junction is on a local Algarve Line rattler.
The benefit of the train is that you can get up and walk around, go to the on-board cafe.
There are two Hi-Speed Alfa Pendular though trains per day from Porto to Tunes and vice versa.
If you go to my blog here,
http://barlaventostravelblog.blogspot.com/2009/06/porto-to-lagos-summer-2009.html
(Click on image to enlarge)
I have published an extract from the current Portuguese railways timetable for the run Porto to Lagos.
Transit time is between 6hrs45mins and over 8 hours.
There are two bus operators on the route. Renex and Rede Expressos.
Only Renex neatly ties in with the train as its Lisbon Station is at Gare Oriente.
Rede Expressos may be the best bus option. However, at time of writing, their website was down. Transit time will be about 7:hrs + but one would have to change train in Lisbon.
Renex takes 3hrs:30mins from Porto to Lisbon and 4hrs:30mins from Lisbon to Lagos.
The bus stops en route between Lisbon and Lagos.
The bus route is not as scenic as the Train route and you can't move around.
Personally for not much more I would normally recommend the train.