My favourite method is to do the Rotation Battle at Restaurant Le Wow in Lumiose City.
For this you will need a high level Pokemon already (probably around level 70 or higher is best). Have your high level Pokemon in the front of your party, and the two you are most interested in training in the second and third slots. Give one of them the Lucky Egg, and give the lead Pokemon the Amulet Coin. Use the Experience O-Power as well (I have all 3 levels of it). Now just sweep the opponent with your high level Pokemon - their Pokemon are all level 63. Because it is a Rotation Battle, then the first three Pokemon in your party all get full experience. Any others in your party will get half, assuming the XP Share is on, so they will also slowly level up.
The advantage of a Roatation Battle over the other kinds of battle is that the first three Pokemon all get full experience, but only one of them has to actually battle. This means you can have a level 1 Pokemon you have just hatched get full experience if you want to - which is something I have done numerous times.
It costs 100,000 to battle. This drops to 90,000 if you get a perfect score doing it. Either way, you should make more than that amount of money doing the battle, from both the Amulet Coin, and the Balm Mushrooms they give you, assuming to try to complete the battles in the suggested number of turns, so not only is it good for experience, it is also economical.