2000XP per egg + 1000XP for every pokemon that isn't in your pokedex (chances are that one of them isn't in your pokedex since eggs are a great way to get pokemon that normall don't spawn in your area).
When the eggs are hatched, evolve every pokemon you saved up for this moment and you will get 1000XP for every evolve.
With a bit of planning this will gain you at least 10000XP which is about the same amount that you need for leveling up around Iv112.
A rule of thumb concerning eggs is that eggs with a longer distance typically give you rare pokemon. Although the list isn't 100% correct (I got a Magicarp out of a 2km and a 5km egg), see this list at Serebii to check which eggs have been documented to spawn which pokemon:
Also eggs don't track distance when you're moving to fast (above ± 20 km/h), so driving around in a car isn't a clever method to hatch out eggs.
This is the currently known rewards list for leveling up (credit goes to /u/ virodoran @ /r/TheSilphRoad):
Some last minute tips
Currently the game is a little buggy and the servers are spotty at best.
One of the most annoying bugs is the so called `1 HP glitch'; this is when the defending pokemon on an enemy gym doesn't die and his hp doesn't get lower than 1 HP. If that's the case wait out the timer (sometimes the server catches up and still gives you the victory) and restart the game to try again.
Another annoying bug is the so called 'Go bug', where you try to enter a battle at an enemy gym, but after the word 'Go' you get kicked out of the match only to return to the gym's stat screen. This usually happens after you've restarted the game because of the `1 HP glitch', the server thinks you're still in the battle and thus doesn't let you start a new one. Just wait for a minute or two and try again. Usually the server kicks your 'ghost' out after the battle timer (which is also desynchronized) on the server has ended.
There's also the 'catch bug' where the app freezes on the poke ball just while you're trying to catch a pokemon. Give it 10 seconds for the server to catch up; if it doesn't, then restart the game. The end result is usually one of two. Either you managed to catch the pokemon and he is in your pokemon list, or the pokemon escaped the poke ball and spawns at the same location after you've restarted the game for you to have another try. There's also a third option and that is that the pokemon fled, you can check your journal at the character profile if that's the case, usually it mentions the pokemon fleeing.
This game can use up a lot of battery. Try to set your screens brightness to a low setting and use the power savings setting in the game. What this does is it turns your screen to black when the phone is held upside down (i.e. when the phone is in your pocket). The game stays active and the phone vibrates when a pokemon spawns nearby. Watch out however, some people have reported that the game is unresponsive when it 'wakes up' and the only remedy is to restart the game and turn this setting off.
And as a last tip: try to play while the US is sleeping. Usually when the east coast of the US is around 9 a.m. local time, the servers are getting very spotty. Try to plan your pokemon travels so that you can avoid heavily loaded servers.