I assume ELO in League is similar to MMR in WoW (forgive me if it's not).
The reason why you play higher or lower rated teams is so you and the game can see if your are ready to play against that higher or lower team. For example, Let's say team A is 1500 ELO, the game wants to see if team A is ready to move on to, say, 1650 ELO. The game queues you into team B at 1600 ELO to play against, the rating is higher then team A's but not so much higher that it's an auto-loss for team A. If team A beats team B, Team A gains a moderate amount of rating, team B also loses a moderate amount of rating because they lost to a lower rated team. However, if team B wins, team A's ELO wont go down all that much, because they were playing a higher rated team. On the flip side, Team B also gains little ELO for beating a team lower than them.
Another reason for being queued into a higher rated team is that no one is queuing and you just got the short end of the stick.
Hope this helps