I've spent time both on the Mosel and on the Rhein. Both were interesting, but if I had to choose, I'd choose the Rhein, either St. Goar or Boppard.
The Mosel, at Cochem, is a much quieter river, and it winds around more, making it more difficult to get from place to place. South of Cochem, the rail line runs straight, just touching one side of the loops at Bullay and Wittlich. You have to use buses to get from those towns to the wine towns of Zell and Bernkastel-Kues. Not a big inconvenience, but not as convenient as the Rhein, with rail lines along both sides of the river.
The Reichsburg, above Cochem, is not a real castle. It's a mid-19th century chateau, built to look like a castle by a Berlin businessman on the site of a previous castle that was destroyed by French troupes. The only genuine, intact castle in the area is Burg Eltz, which is a bit of a pain to get to. Except for buses that run only on weekends, you have to have a car or make a bit of a trek through the woods to get to it (or take an expensive taxi ride).
On the Rhein, Stahleck and The Schönburg are recontructions of earlier castle that were destroyed, rebuilt as accommodations, a hostel and a hotel, but the ruins of Rheinfels are inpressive. And, at Braubach, The Marksburg is the only genuine, intact castle on the Rhein. It's not been lived in for centuries, but has been preserved as it was when it was lived in by the German Castle Association.
In St. Goar, there are some hotels clustered around the market square, next to the river and the K-D and ferry docks. You can take the ferry across to the other side, to St. Goarshausen bahnhof. It's a short train ride to Braubach and The Marksburg. As I remember, the hotels in St. Goar are about middle of the range for prices.
Boppard has a row of mostly upscale hotels facing the Rhein across a tree-lined promenade. I was, however, able to find a Privatzimmer for less than anything I could find in St. Goar. There is also a ferry across the Rhein at Boppard, but it ends up on the other side in the middle of nowhere; it's about a km walk from the ferry to the rail station in Filsen. You can also take the K-D boat down to Braubach (and the train back to Boppard via Koblenz.