A cruise route is normaly between Duesseldorf and Mainz + the river Mosel till about Cochem.
This link below is the main operator on the Rhine.
https://www.k-d.com/en/
K-D have competition on the Rhine Gorge section.
There are other operators on the Mosel and Saar above Cochem, but I'm not sure you can do the whole route in a sensible manner - it's rather bitty (older members may remember the Salters Steamers timetable on the Thames...).
The major operator on the Elbe is the Dresden White Fleet, between Meissen and the Czech border.
https://www.saechsische-dampfschiffahrt.de
The Flotte Weser runs regularly on a couple of sections of the Weser upstream of Minden.
https://www.flotte-weser.de
Potsdam and Lake Mueritz all have extensive operations, otherwise you're looking at short sightseeing trips.
There are several upmarket cruise ships, Viking Line is just one, operating multi-day trips on the Rhine and Mosel, and via the Main-Donau Kanal to the Danube, or along the Elbe to Dresden and Prague.