This is a common question.
I say the answer is to buy. In the UK you can get a tux for under £100 at places like http://www.slatermenswear.com/
and for £200 you will get something very nice. In the US there are dozens of places that sell Tux under $150. This way you also known that you will have a suit that fits.
Cunard are quite expensive to rent from, I do not remember the exact price but if you are going to do more that one cruise, buying is cheaper.
The other option is to rent from a dress hire shop in your own town. There is always going to give you a formal dress outfit for the week for the same price as two weekends.