Solution 1:

That is actually the only way to do it. There is no special iOS like button. However, the good news is that just today Facebook announced single sign in support for mobile apps. This should remove some of the burden the user faces to log in to facebook.

Solution 2:

It seems there is an agreement on not being able to do this. This question shows you can, as does the FB Graph API documentation:

You can comment on or like any object that has a /comments or /likes connection by posting to https://graph.facebook.com/OBJECT_ID/comments and https://graph.facebook.com/OBJECT_ID/likes, respectively.

Unfortunately, according to this question you can’t like a page.

Solution 3:

I like using ShareKit: http://www.getsharekit.com/

It's not exactly what you're looking for, but still...

Solution 4:

The only way supported by Facebook on any platform (web, mobile, etc) is from their iFrame code. From iOS, that means embedding a UIWebView into your application with the iFrame code. Note that it does require them to login via Safari.