The seat on that BMW is pretty much the stock thickness. It might even be based on a factory solo seat that was available for the BMW airheads back in the day (still can be bought). Might have been Police issue stuff.
http://www.bmwbayer.de/index.php?page=product&info=1590
First for a decent seat you need good quality foam, like they used on the factory seat. Nothing wrong with using the stock seat and doing some general reshaping of the foam without cutting too much out.
Second, you need to maintain the rubber bushings between the seat pan and frame to further reduce vibration. This will be doubly important on the XS650 which vibrates like mad at highway speeds.
On the XS650, for highway comfort you want to lower the engine RPM. You can do this with sprocket changes (I run a 30t rear sprocket on my XS650 for this purpose). You can also go up a tooth on the front, but I haven't done this one (I think it's close to equivalent of going down 3 in the rear).
The most invasive option is the taller 5th gear from MikesXS which goes on the transmission. I did this when I rebuilt my engine (750cc rephased race motor).
Bottom line is my XS buzzes a lot at speed, but its a cafe racer with rearsets bolted to the frame, clipons bolted to the forks and a stupid nothing of a seat sitting right on the frame.
With the stock rubber bushing mounted footpegs and handlebars and a proper seat, it would be way more comfortable I'm sure. But I have a BMW R75/6 that is my distance bike.
Sargent Seats will make a custom seat from your stock one, inserting gel pads etc. Another option is an Airhawk air cushion, which I have for my XS650 for desperate longer rides. You partially inflate it with air and strap it to the seat. Works great to eliminate pressure points and you only put it on when you need it.
So a slightly cut down customized stock seat with perhaps a gel insert would be a good start, and then if it's not good enough toss a sheepskin, air cushion, gel pad or something on top for longer trips.