We went from London to Porthmadog by train and it was one of the highlights of our trip. Total time was 6 hours from London Euston, changing trains in Birmingham. The London-Birmingham segment was fast and unremarkable, operated by Virgin Trains on the former LMS. Then onward from Birmingham we were on a diesel MU trainset operated by Arriva Trains Wales on the former GWR; this went via Severn Bridge Junction (said to be the largest mechanical interlocking in the world?) in Shrewsbury - a treat in its own right! At Machynlleth the train was broken into two sections, one for Aberystwyth and the other to Pwllheli. (You want to go toward Pwllheli, so check with the guard to be sure you are in the correct car. When we first got on the train we were in the wrong car, but the guard checking tickets noticed our mistake: "The good news is you're on the right train, but I'm afraid the bad news is you need to move to a different carriage.") The food situation may have changed since James visited, because I was able to buy a ham sandwich, a chocolate bar, and a cup of tea from the tea trolley on the train so I didn't have to go hungry, but packing your own lunch is probably still advisable though.
As the name implies, the Cambrian Coast Line runs right along the Irish Sea and features some amazing views. I would say it ranks as one of the most scenic railway lines I've ever ridden, plus with station stops as Tywyn (Tallylyn Railway), Fairbourne (Fairbourne Railway) and Welshpool (Welshpool & Llanfair) as well as Porthmadog, it's a convenient way to hop from one narrow gauge to another. See
Wikipedia: Cambrian Line for more information on the line. I can't recommend the trip enough.
-Philip Marshall