Sam writes, "You could actually use the boat for transportation. Take a train from Frankfurt to Ruedesheim where you can board one of the K-D boats going down river."
Sam's correct that this boat ride is easy to do as part of your transportation. And yes, you can board in Rüdesheim, which is right across the river from Bingen, rather than Bingen itself, if you wish - but the arrival of the train in Rüdesheim at :04 after every hour means you won't have time to get tickets and catch the KD boat leaving R'heim at :15 after (after the hours of 9, 10, and 11 that is.) So you must plan on about an hour of down time in R'heim. You'll find that there are more trains going to Bingen and arriving at more convenient times for boarding the KD boats. You can travel either to the Bingen Rhein Stadt station (which is closest to the KD dock) or the Bingen Rhein Hbf station (main station, a bit far if you're toting a bag.) Check the train schedules and plan accordingly before you head out.
KD fares: Bingen-St. Goar is €19.80 but show the train ticket you bought to reach Bingen (or R'heim) at the dock for a 20% discount and it's only about €16. (the KDRHINE site Sam provided sells a CRUISE PASS for €31 that you do NOT need to travel the above segment - so just buy the ticket at the dock in Bingen (or Rüdesheim.)
The VRM day pass Sam mentions is a good one for outings from St. Goar. Note that to the south, it's valid only to Oberwesel - you'd need to pay a few extra Euros for a point-to-point O'wesel - Bacharach ticket if you wish to travel the 5 minutes between Oberwesel and Bacharach. Also available is the Rheinland-Pfalz ticket - a day pass with wider coverage for €29/2. Buy it (or the VRM pass) from a ticket machine at the station.