I've seen a lot of games in the LCS and All-Star, and they sometimes changed bot and top lanes.
When is this a good practice?
What do you gain from doing this?
Should I do this to avoid counters or if my solo laner has more sustain than theirs?
There are a few reasons to swap lanes.
One thing to remember if you're going to send your adc/sup top is that if they cant get the tower down, and get back bottom lane by 4-5ish you're risking a dragon to the opponent (their adc/support is still bottom and able to help with dragon while yours is on the other side of the map).
Another important note, as of patch 4.1, top and mid turrets gained 20 damage reduction from champion basic attacks. This makes lane swapping even more risky as the duo that goes bottom won't have this damage reduction to deal with.
Trading top with bot makes you give up dragon control so the duo lane (ADC and Support) must kill the tower fast and then go back to bot to make sure their tower remains standing.
It can be done with great pushing duo comps, such as Nunu with Caitlin.
However you make it harder for your solo laner to last hit. If your solo is playing a champion that can easily last hit from range such as Elise, it is possible to take the first tower with your duo, gank bot, and then take dragon.
Another important case where such a swap may occur is when the solo laner is counter picked.
In general this is high-risk, high-reward play.
TL;DR
To quickly take early global objectives (turrets and dragon) and to deny the enemy solo lane.