Under Regulation (EC) No 261/2004 of the European Parliament, you have the right to receive �250 compensation for the cancellation of a flight of less than 1500km or �400 compensation for a flight of more than 1500km. The only exception is where the airline "can prove that the cancellation is caused by extraordinary circumstances which could not have been avoided even if all reasonable measures had been taken":
http://eur-lex.europa.eu/LexUriServ/LexUriServ .do?uri=CELEX:32004R0261:EN:HTML
(See Articles 5 & 7)
You should also have been provided with "meals and refreshments in a reasonable relation to the waiting time". (See Article 9). If this provision was not met, you might have the right to claim additional compensation.
This site states that Porto is 1322km from London but Lisbon is 1585km, so the amount of compensation you're entitled to (if any) might be either �250 or �400 (possibly plus additional compensation for the lack of food), depending upon the exact start and finish points of your journey:
http://www.timeanddate.com/worldclock/distance s.html?n=136
Chris