This question has been a long time coming. My answer will undoubtedly be Dota 2 biased because after playing both I feel that it is by far the better competitive game. However, I also believe that everything I say will be accurate- if anything isn't, or you feel there's something I've missed or should clarify, please point it out and I'm happy to change it. Hopefully I've made this worth reading.

Within the games

Metagame

Dota 2 has an incredibly versatile metagame. Junglers are optional, with dual or unorthodox junglers presenting themselves at times. Trilanes, where three allied heroes on the same team group remain in close proximity from the beginning of the game, as well as roamers, where one or more heroes has no set place on the map and moves about as needed, are both common. Lanes and roles are incredibly fluid to the point where attempting to define many heroes, or even predicting how a single 5-hero composition will lane, becomes difficult.

League of Legends has a relatively stable metagame. Convention dictates that an AD carry and a support go bottom, an AP carry goes mid, and a sustainer goes top, with the 5th man- an all but required jungler, left to his devices. These roles have not changed in at least a year of high level gameplay and across multiple tournaments.

League of Legends also introduced the concept of Summoner spells, which on the surface is an excellent addition to the depth of the genre. However, the power of "Flash," a short-distance blink spell, makes it all but required by every player, essentially just adding a high cooldown blink to every hero. The majority of Summoner spells are simply copies of items or abilities in Dota 2. League of Legends also includes Runes and Masteries, advantages which players can take with them into the beginning of the game. In competitive play, these for the most part seem relatively static.

The Laning Phase

As I've already mentioned, the lanes in LoL are very similar from game to game. This makes movement between them easily noticeable; only the jungler can truly gank unpredictably. When coupled with the Flash ability, which grants every character a teleport from the start of the game, and towers which deal huge amounts of damage, action at low levels becomes incredibly rare. It is not uncommon for the first kill of a LoL match to happen 5-10 minutes into the game. In Dota 2, this is nearly unheard of: first blood happening before the creeps even spawn is more common than a game going so long without a death.

A majority of spells in LoL are inherently spammable. They cost a low percentage of a character's mana pool, or none at all, and can be used extremely frequently to pressure a lane and test an opponent's ability to "sustain" themselves. Many of these abilities are skillshots which need to be landed as much as possible. The spells are for harass and are predictable, and dying to spells like this as a high level player simply doesn't happen: it's very clear what's coming.

Conversely, a key concept of laning in Dota 2 is simply "... go." What I mean by this is that when two allies in a lane decide to make an attempt to kill an enemy, you will know it. Rarely seen spells with high mana costs and large impact come out and decide the fight based on the players' judgment of the situation and execution of their attempt. The availability of such abilities dictates how safely you can lane against opponents. In effect, it comes down to a simple challenge: I think I can stay alive if I stand here. If you don't think I can- prove it. A simple AoE stun on a hero such as Sven or Sand King can cost as much as 75% of the hero's base mana pool, and without the mana to use such a spell these heroes are just big creeps. Other spells can be somewhat spammed, but very few Heroes cast spells in lane half as much as Champions in LoL do: you simply don't have the mana for it. In the early laning phase, this mana is as valuable as health, the latter of which can be quickly restored with consumables. Mana potions are more difficult to use, as they last 30 seconds and are dispelled upon taking damage.

These consumables are noteworthy only because of another aspect unique to Dota 2, the courier. Utilization of the courier to bring items to you makes being beaten down in your lane somewhat acceptable- as long as you don't actually die. After healing up, you're still at full mana and because your opponents probably took damage and used mana in the kill attempt, the balance of power in the lane may have swung the other way.

Denying

For some reason, denying has become a crux of the argument between League of Legends and Dota 2. To be perfectly honest, it doesn't really matter anywhere near as much as people pretend. The simplest way to explain the role of denying, to me, is to imagine a game of musical chairs. Dota 2 gives two people one chair and has them fight over it every time there's a minion/creep to kill. League of Legends takes the same two people and gives them each their own chair: no one loses.

When you expand this concept to towers is when denying gains huge importance. In Dota 2, if an enemy tower is below 10% HP it is capable of being denied and thus your team is on the verge of losing a lot of potential gold. If your team does not press the issue to force a conflict at the tower, you will lose out on that bonus. In League of Legends, you can just walk away if the other team wants to defend their tower. It's not going anywhere and you have nothing to lose by leaving. If the fight doesn't seem to be in your favor, there's no reason for it to happen.

It's also worth noting that denying minions/creeps allows a team to control lane equilibrium. If they've taken an enemy tower, a team with superior lane control can still keep creep clashes on their side of the map and force the enemy to make the moves. The actual power of a deny to limit experience and gold to an enemy isn't half as important as the overarching strategies it allows.

Ganking and Teamfights

In high level League of Legends ganks are infrequent, and with good reason: a gank doesn't really set your opponent back very much. Because Champions don't lose gold when dying, even if a gank is successful its opportunity cost to the killer may be worth more potential gold and experience than what is negated to his opponent.

Because of this, action in League of Legends revolves around what conflicts of interest on the map there are: specifically Baron Nashor and the Dragon. These conflicts force only a few large scale teamfights that happen at predictable times and usually decide the match.

In Dota 2, while fights at Roshan are frequent, they are only one of many reasons for fights to happen, with a simple gank capable of evolving in mere seconds to a large scale teamfight. We'll see the reason for this next.

Items

The single item that Dota 2 benefits from the most is the Town Portal or TP Scroll. While it exists in League of Legends in the form of the Teleport Summoner Spell, it's on a massive 5 minute cooldown and requires you to give up a valuable spell slot. In Dota 2, for a small gold cost and an item slot, your hero is capable of being in a defensible position on your part of the map or at a tower in three seconds. You can assist an ally being ganked, stop a tower push, or even move across the map to catch an opponent by surprise. You're also capable of escaping to safety at your well in the same short span of time, but only if you can outsmart your opponents.

The mobility offered by the TP Scroll is absolutely crucial to the fluidity of the game; I cannot even imagine how different Dota 2 would be without the item. The potential it offers is enormous, and it's why hero movement in the game is so difficult to keep track of. A hero can kill someone in bottom lane, immediately teleport to an allied tower top that's under attack, and win a teamfight there for his team. Heroes are constantly shifting around between lanes to gain advantages where they see fit: the ability to be aware of all five of them, often through pure intuition, is one of the biggest differences between a casual Dota 2 player and a competitive one.

Items in Dota 2 are very attention-demanding. It is not at all uncommon for a single hero to have four or five items that are activatable and time-sensitive at any given point in the game. Non-activatable items in Dota 2 are very simplistic: if you want a critical strike, you must build Crystalis. If you want to boost your gold intake, you build Hand of Midas, an item that gives bonus gold with every use, on a cooldown. For silencing an opponent, spawning illusions, teleporting, granting your hero various immunities, etc., each item performs a very specific role and the choice of items is a monumental one for heroes and teams, never mind the actual usage of such items.

Items in League of Legends are relatively interwoven. There are multiple different items with similar themes that have various flavors. There are four items, for instance, that all grant passive cooldown reduction and passive gold over time. Items in LoL are overwhelmingly passive- while there are some useful activatable items, the benefits they give are minor compared to the very powerful and situational abilities of items in Dota 2, such as a BKB which can grant complete magical immunity for up to 10 seconds, or a Blink Dagger which conditionally allows a hero to teleport nearly a screen's width on a 14 second cooldown. Most of the activatable items in League of Legends deal with dealing/preventing damage or affecting movement speed. None grant any form of true disable.

Many consumables such as health potions and wards that grant vision in an area are shared between the games. League of Legends simplifies their usage: these consumables may not be shared and are not subject to enemy intervention. Use of potions in Dota 2 requires care, since they can be interrupted by enemy damage, but also allows for hyped moments where a player makes a great play by juking enemy attacks while using a health potion to gain a quick burst of health and turn an otherwise decided fight.

Fog of War

Fog of War in Dota 2 is simple, but manipulative. If there is not a direct line of sight between an allied unit and an enemy, you are not seen. This allows players to hide behind treelines (trees are destructible by many heroes and various items) and make their presence known only at opportune times.

Fog in LoL is primarily due to "brush," a mechanic where units in brush locations can remain unseen despite being very near to enemies. These locations are static and are frequently warded or scouted with abilities, making their actual impact minimal and more a matter of "did you check that spot?" than anything else.

Runes versus Blue/Red Buffs

In Dota 2, there is a single powerup called a Rune which spawns every two minutes. This grants a hero double damage, huge health/mana regeneration, invisibility, maximum movement speed, or spawns two hallucinations of the hero that have various uses. Only one of the teams can get this powerup and a sizable percentage of early game kills are a direct result of one of these Runes.

In LoL, the Red/Blue buffs are spawned by neutral creeps in each team's jungle. As in the case of denies: both teams have the same thing, so there is no impetus to fight over it if the fight doesn't seem to be to your advantage. The buffs in LoL are no less impactful than those in Dota 2, but the advantages they give don't help much when ganking. You can safely assume that an enemy jungler in LoL has a red buff- if you try to assume that a roaming ganker in Dota 2 has an invisibility rune you will never be able to accomplish anything, and so you're forced to make calculated risks.

Gamechanging moments

This is the section most deserving of expansion, but to anyone without a decent grasp of both games it's virtually impossible to explain. I've done my best.

Gamebreaking moments in Dota 2 are frequent and essentially define the game. A commonly chosen hero, Enigma, has an ability called Black Hole which can render an entire opposing team useless for 4 seconds, an absurdly long time in games of this genre. See this teamfight. However, the difficulty in executing something like this is enormous and the penalty for misusing the spell, which can be interrupted easily and has a three minute cooldown, is enormous. In the same video that I linked to, the Enigma performs with textbook execution, even being creative by using another of his abilities to clear trees for positioning. However, his team still loses the fight: the opponents have reacted properly to his team's composition by buying items with significant effects (Mekansm and Pipe). When his teammates don't follow up on his initiation properly, it costs them the battle. Games of Dota 2 can and have been won from the use of a single ability.

Conversely, in League of Legends, spells have become more standard and less dramatic. Their cooldowns have been reduced, their effects lessened, and their impact often unnoticeable. Teamfights in LoL are not so much about tactical selection of targets or timing as they are about casting all of your spells and hitting something with them. This is why the concept of a "tank" is able to exist in League of Legends but is completely foreign to Dota 2: good players don't use spells on heroes simply because they're in front, but in LoL it's often the correct course of action.

Action

Something a lot of people like to compare is the amount of action a single typical game will have. I took a look at 30 VOD's from the most recent LoL and Dota 2 tournaments and compiled information in a public spreadsheet here. It's not a huge sample size, but it gives a pretty good picture of an average game, nonetheless. There are some outliers that probably slightly influence the results, specifically the longest Dota 2 game I'm aware of at an absurd 86 minutes long.

LoL: Games last about 38 minutes. A typical game averages about 29 total kills between the two teams. There are 0.78 kills per minute, or about 8 kills every 10 minutes, on average.

Dota 2: Games last about 44 minutes. A typical game averages about 56 kills between the two teams. There are 1.37 kills per minute, or about 14 kills every 10 minutes, on average.

Outside the games

eSports Features

Dota 2 has an incredible replay and spectator system. Not only can players tune into essentially any game on a two minute delay, they can hear commentary by anyone in broadcasting slots choosing to utilize the feature. They can choose to operate their own camera, follow a commentator's, follow a single player's perspective, or even allow the very adept computer to automatically decide the most action-intensive location; never missing a kill. Any public or matchmaking game has replays which are freely downloadable by upcoming players. Valve has also announced that Dota 2 will have LAN support, putting it even a step above competing games like StarCraft 2. Teammates can both voice chat with each other and strategize by drawing on the minimap.

League of Legends has a replay system created by a third party developer that is very quirky and comparatively unusable. There is no voice chat in the game. League of Legends has the advantage of a team matchmaking system which allows up and coming teams to scrimmage against each other easily. I do not know if this is actually utilized as advertised or if Dota 2 plans to emulate the feature.

Player Base

While LoL constantly heralds the amount of "active players" it maintains, it neither specifies what constitutes "active" nor how many concurrent players the game has at any given time. Dota 2 is currently peaking at slightly over 30,000 concurrent players, but at least five times that number are playing the original DotA on GArena at any given time, in addition to uncountable players on other DotA clients, including the now antiquated Battle.net. As the availability of invites to the closed beta of Dota 2 increases, the number of players will surely grow. Attempting to say whether it will end up bigger that LoL is difficult if not impossible due to LoL's information hiding.

Competitive Community

Na'Vi is absolutely crushing Dota 2 right now- anyone who contests this is not watching much competitive gameplay. There are various other highly successful teams, the majority of them Eurasian, with only a few North American teams distinguishing themselves. The most well known of these North American teams is FIRE, now coL., who came essentially out of nowhere to secure themselves both a sponsorship and a respected international presence. Most of the sponsored Asian teams have to this point stuck with the original DotA. This is largely due to a televised DotA league in the country called the G-League. This is expected to change in the near future, however, as some of the bigger names still playing Chinese DotA have already announced their switch to Dota 2.

League of Legends on the other hand has a relatively international competitive scene, with multiple top teams from all areas of the world. Worth mentioning is the Korean television channel known for its StarCraft content, OGN, which recently announced that it will be hosting shows for League of Legends.

Both games have teams supported by huge sponsors, with multiple of the biggest names like CLG, Na'Vi, Dignitas, mTw, and plenty of others sponsoring both Dota 2 and LoL teams. Other well-known gaming organizations like Complexity, SK, and Fnatic are undecided, having sponsored and dropped teams from both games at times. Finally, teams like EG and TSM have apparently settled into one game or the other, though if one game comes to dominate the scene I wouldn't doubt that either would ignore it, with the popularity organizations like those two can both swing.

Important Figures

In this genre, there are several key people who stand apart from others in terms of developing the scene surrounding the games:

Eul: As the first serious developer of DotA for WarCraft3, Eul's contributions include core mechanics of the genre that at this point we take for granted. He now works at Valve contributing to the development of Dota 2.

Guinsoo: As the creator of DotA All-Stars, Guinsoo combined popular aspects from various versions of the game that had sprung up around the original, acting as a filter for innovation. Guinsoo now works with Riot Games in helping to develop League of Legends.

Pendragon: Pendragon began hosting a DotA-related website in 2004. The website, http://dota-allstars.com/, acted as the foundation for the community around the game to grow and only came to an end when he announced that he was moving to work with League of Legends and archiving the site.

Icefrog: The developer who pushed DotA to new heights with his focuses on balance and competitive play is frequently deified by his fans. IceFrog was the primary developer of DotA throughout its competitive explosion and the arrival of its legitimacy as an eSport. He formerly (and secretly) worked for S2 Games in the development of Heroes of Newerth and left under equally unclear terms, likely after finding the environment at S2 unsuited to the degree of creative control he wanted. Shortly after that departure, he announced his involvement with Valve as the head of a team bringing us what we now know as Dota 2.

Developer Support

League of Legends has a competitive scene that is largely subsidized by Riot Games. The developer sponsors tournaments, funds prize pools, and organizes competitive environments. Dota 2 awarded the biggest prize pool ever at the $1.6 million "International" run by Valve. However, it also has multiple high quality events like The Defense and The Premier League with well known industry sponsors like Twitch.tv and Razer that are completely unaffiliated with Valve. I am not aware of any such competitions for League of Legends.

The different ways that Dota 2 and LoL update their games is also something worth covering:

The developers of League of Legends nerf a lot of powerful things, see their most recent patch here for details. What this does is push everything to the middle in terms of balance, where it's more simple to tweak anything that gets too weak or too strong.

Alternatively, here is Dota 2's most recent patch. Exactly three things were seriously weakened, all of which were regarded by many as broken mechanics. (Dark Seer's Agh's Wall, Invoker Tornado/EMP, and Puck's Phase Shift autocast). Each of those heroes that was nerfed was also significantly improved in other ways, to maintain their power. Outside of that, something like 40 heroes that were considered underused were buffed- many of them quite significantly.

Dota 2 maintains power by making everyone powerful, LoL keeps everyone approximately in the middle and tweaks the ends. Attempting to say which approach provides an overall better game balance is largely a subjective argument, so I won't make it.

In Closing

I feel that despite the absurd length of this message I've still failed to cover so much, but that's part of the reason these games are so popular: there is an enormous amount to learn and improve upon and attempting to write a guide for even a single aspect of either game would be a monumental task. In a single sentence, the major difference is that the games are not built for the same purpose.

Dota 2 is constructed with the mindset that competitive players have the utmost priority. If this means that the average player is neglected, it doesn't matter to the game: it is not being developed for players who are not at the highest level. If a new hero is added, it's because the competitive metagame would benefit from such a hero, not because Valve needs to earn money. If a hero is made weaker, it's not because he's strong in public games, it's because he's strong when the two best teams in the world square off.

League of Legends is built with a model that requires an influx of "new" to create revenue. Whether that's new customers, new characters, or new skins, it doesn't matter: the game is developed to bring in constant money. In order to continue that, Riot Games needs to ease entry into League of Legends for new players and then convince them to stick around. It doesn't matter if the competitive players think Flash is a stupid mechanic or if top commentators want an improved replay system- the game isn't being prioritized for them.

To be perfectly frank, Dota 2 is incredibly hard. When you start to play the game, you will play your first hundred games and still feel like you have no grasp whatsoever of what you're doing. You will get frustrated with the game and at times you'll probably have to step away. But if you love the thrill of the razor's edge scenario, you'll be back. League of Legends tones that down at both extremes. When you're learning the game, you won't become anywhere near as frustrated because mistakes aren't punished as heavily. For example: the more you die, the less each successive death rewards the enemy team- a design decision clearly made with public play in mind. When you make gameplay decisions with such priorities, the peak gameplay suffers as a result.

The cutthroat style of Dota 2 is simply not something that everyone will appreciate- ignoring that concept is asinine. The argument can definitely be made that Valve is overdoing it- their lack of accommodation for players looking to learn the game is noteworthy and I feel that it holds back an otherwise extraordinary game. In the end, however, Dota 2's focus on high level play makes the game incredible to watch once you begin to understand its nuances, and the depth and replayability of it as an eSport is unmatched both within the genre and across all others. In time, I fully expect others to come to appreciate that.