The biggest different between Dota 2 and LoL is pricing model.
Dota 2 is free. Really free. You have access to 100+ heroes from your first game and there isn't a single thing you can buy that has an effect on winning or losing a match. It's all skins, alternate announcers, and other stuff just for fun.
LoL is free... to play. There are a set of heroes that are free at any given time which is constantly rotating. You have to pay to unlock heroes permanently or can unlock them very slowly over time. You will never unlock everyone without paying money. There are additional other systems you have to level up, or can pay to level more quickly, that provide small bonuses to character attributes in game.
This effects more than the price.
For example in Dota 2 one of my favorite modes is "Reverse Draft" where each team picks the OTHER team's heroes. So you try and give your opponent the worst team you can think of. Something like this is impossible in LoL because every person only has access to a small set of heroes.