There are two main ways to do this, and a third which I think is out of scope because it's outside the control of the app developer
1) Add Page Tab dialog
For this, you send the user to the dialog and they're prompted to add your app to your page
Example usage is to link the user to a URL of this format:
http://www.facebook.com/dialog/pagetab
?app_id=<APP_ID>
&redirect_uri=<A URL OWNED BY YOUR APP>
Any URL owned by your app works for the redirect_uri
parameter, but in most cases you'll want to use the same value your app uses for 'Page Tab URL' or 'Secure Page Tab URL' in the app settings
For a working example, you can add the InstaTab app using this dialog
The admin will see a dialog that looks like this:

Full documentation for the dialog is in the Add Page Tab dialog documentation
2) Post your app to the user's page(s) using the API directly
Using the Page object's /tabs
connection you can add your app to a page directly.
To make the API call you'll need manage_pages
permission from the page admin.
Once you have that, use the Page access token to make a POST request to /v2.0/<PAGE ID>/tabs
with the one parameter, app_id
with a value of the App ID of the app you want to add to the page. If the app provides a page tab, that tab will be added to the page.
A sample API call would be a HTTP POST to
https://graph.facebook.com/{page-id}/tabs
?app_id={app-id-to-add}
&access_token={page-access-token}
3) Page settings interface on Facebook.com
The page admin can use Facebook's Page management interface to search for apps which provide page tabs in the Apps for Pages section of the App Center - in this case you'll need a way to get users who find your app via this method to add the tab using one of the methods aboce