Where are you cruising from/to? Since you listed Iguazu first, I'm going to guess Buenos Aires to Santiago.
If BA is the start of the cruise, you could do Iguazu first. (I spent a week in Argentina following a Santiago to Buenos Aires cruise - 5 days in Buenos Aires and 2 in Iguazu). We did this on our own. You can arrange your own flights from BA to Iguazu (I am discussing the Argentine side). Just be aware that flights in South America are not always as reliable as the USA. You need to verify that your flight has not been cancelled. Our flight from BA to Igauzu was cancelled, and this caused a several hour delay in the BA airport until we could get on a later flight. We took a taxi from Iguazu airport to the Sheraton Iguazu. That hotel was within the park, so the next day it was easy to walk directly out of the hotel into the park. I would say that visiting the park on the afternoon of your arrival and then a good part of the following day would be sufficient. Then try to catch a later afternoon flight back to Buenos Aires (and hope it isn't cancelled or delayed - our flight was delayed). Or you could stay one more day in Iguazu if you want to be less hurried and then take a morning flight so that you get to the ship at a reasonable time. But for us, a long afternoon and a good chunk of the following day was adequate. (When planning trips to areas I've not visited before, I think the hardest thing is figuring out how to budget your time).
I've visited Machu Picchu as well, but this was on a separate trip to Peru. There is lots to see in Peru and it is easily worth a 7-10 day trip (or longer) on its own. But if Machu Picchu is all you have in mind, you could talk with the tour company that we used. Latin America for less arranges private tours for people:
http://www.latinamericaforless.com/. We were generally pleased with their service in Peru. (We visited Arequipa, Cusco, the Sacred Valley, Machu Picchu, and the Peruvian Amazon. We skipped Lake Titicaca because of the altitude, but that might have been a mistake.) Be aware: for Machu Picchu, because it is so popular and you need to get up and back by bus, you want to be on an early bus going up. And I would suggest that you not wait for the last minute to catch a bus to return back to town. The buses get quite busy, and you don't want to get stuck in a long line waiting for a return bus so you can then catch your train. Machu Picchu is wonderful, and this is one site where you will want to get up early and get going. (Regarding budgeting time: one day in Machu Picchu was enough for us. It is fabulously beautiful. We did not walk up Wayna Picchu - that would have required an even longer day. I fretted about the weather, because we had only planned one day for Machu Picchu, but we were lucky and had a gloriously beautiful day.)