For us we have found a 2 inch or better memory foam addition makes a world of difference.
We get queen size toppers from overstock.com for about $85. We bring the box as piece of luggage and our cabin steward is happy to spread it out and keep it in place all week.
It used to be that we just let the steward keep it after a cruise but this time, next week, we plan to keep the packing box and take it home.
It's the best $85 cruise add on .... bar none!