If you have a backup application, you may be able to back up the app's data, sync it to the cloud, and restore it on the other device. The one time I tried that it just made Authenticator crash on startup.
If you saved the secret keys you're given, which is a good idea as long as they're secure and separate from your passwords, you can re-enter them on a new phone by finding a secure QR-code generator (a local or JS-based one that doesn't send the data to any server) and formatting each one like this:
otpauth://totp/LABEL:USERNAME?secret=SECRET&issuer=ISSUER&counter=N
Turn that into a QR-code and Authenticator will scan it. Or find a tool that will do both:
http://dan.hersam.com/tools/gen-qr-code.html
If you have any "counter" based codes, you'll need to know how many times you used it, which could be problematic, but those are fairly rare.
If you didn't save the secrets, your only option is to recover the database from the application, either from a backup or directly from the device. It's under:
data\com.google.android.apps.authenticator2\databases\databases
You can open that up with sqlite3.exe or any SQLite UI.
sqlite> .headers on
sqlite> select * from accounts;
You'll get a table with the secrets, counters, etc., that you need to use.
If you can't get the database from authenticator, then you have no choice but to use whatever mechanism is available for each site. It's very rare that a site will ever give you the secret for a second time, generally the best you can do is get in some other way, disable 2FA and re-enable it with a new secret.