I think the porting tools might work for simple apps that don't use much device functionality. My app uses lots of system frameworks for things like remote control, audio playback and MIDI, so I would still have to rewrite all that code. Then would porting even be worth it, because you'd have the extra headache of maintaining compatibility with the porting tools, and the porting tools themselves creating bugs and development roadblocks.
I haven't looked too deeply into Xamarin, but that would still require rewriting the app again. I suspect that that also works better with simpler apps. In any case, I think to really do it right, you just have to write a native app.
I don't want to expose too much of my thinking here, but I'll just say it's a mistake to think that supporting a new platform is anything less than an enormous undertaking and a huge investment.