Using an Exp share helps to create a balanced team. It lets you bring a new pokemon you encountered up to speed level-wise with the rest of your team without putting them in danger of being knocked out if they are a low level. Having more pokemon also lets you counter your type weaknesses better when you run into a gym that is super effective on you and so forth. Esentially, it's great for training to catch up pokemon or if you want to push one ahead to evolve it or get it to learn a move (although a lucky egg is better suited for this). However, once the pokemon you're raising are around the same level, unless there is one on your team that you want to evolve, its best use is to level up pokemon you want to evolve for your pokedex.