The concept of megas goes actually to both of those categories. There are megas that are actually pointed at competitive battling and making sub-par pokemon viable again, and there are megas that promote the franchise, just because they are fan favorites and as such should be included. Lucario, Mewtwo, Garchomp, Salamence, Metagross and Gardevoir all fall under this category.
Let's focus on competitive battling itself. Thankfully, the online servers that provide us with the opportunity to battle online, if we don't own a 3ds or are fed up with battling people using 6Arceus or hacked pokemon, set tiers which are abided by all, and put pokemon (mega or not) in their place, given their potential. The megas that simply go over the top are classified to tiers where they don't break the metagame for everyone else. The megas themselves are not bad. There is even the thought that having 1 mega in your team is better, than having 2 final evolutions that could be of a "mega-level".
The good thing with megas is that they've saved several pokemon from never being used in the higher tiers. Face it. Before the megas, pokemon like Charizard, Blastoise, Kangaskhan, Mawile, Medicham, Manectric, Beedrill, Pidgeot, Camerupt, Altaria, Glalie and Lopunny were never seen in the competitive scene, with few exceptions that included gimmicks (note: the megas not mentioned are ones that were already good, or are still bad, take your pick). So it IS good to bring some pokemon back from the dead.
A problem is that we didn't have enough viable megas to choose from, and the fear is that the megas will dominate the metagame and sooner or later, the tiers will be just a list of pokemon with mega evolutions.
That said, I'm waiting for my M-Raticate, M-Ursaring, M-Flygon, M-Honchkrow, M-Volcarona, M-Luxray....