The best thing to read I have found is this (I would just read the introduction and conclusions):
http://mackila.com/airsoft/ATP/
-----
My summary and thoughts.
There are three things you need to consider when choosing a bb.
1) Weight
2) Variability/consistency
3) Size
In reverse order.
Size - You need a good match between the bb size and the barrel size. All (except 8mm) bb's are 6mm. But some are slightly smaller than other. Some people run 6.01 barrels, other 6.03+. Some people get on with certain brands. This may be part of the reason. However this is the probably least important aspect.
Variability - Almost all bb's will contain air bubbles. Poor manufacturers will have more air bubbles in some bb's. Therefore some bb's will be much lighter - and this means that will hop more - so they will fly strangely compared to other bb's. You want to pick a brand which makes good quality bb's which do not vary in weight. Now generally speaking the 'best' bb's (in this respect) are regarded a marushin 0.29. Almost all 0.4g bb will have some air bubbles.
However I have not done any research on this for about 9 months so thing may have changed. For example BB Bastard's are amazing - if their 0.4g bb's are as good as their lighter weights then go with these.
Wight - Finally the most important one (maybe). The aim with any sniper rifle is (usually, unless quietness is more important) to maximise the effective range. This means you need accuracy and range. BB's hit the floor when they start to run out of energy (not speed - energy. Energy is a combination of speed and weight [velocity and mass for physics people

]). For the same energy a 0.2 will travel faster than a 0.4. Legal limit are placed on energy not speed.
So what does this mean? Well. Energy loss mostly comes from wind resistance. The higher the speed the higher the resistance (related to velocity squared - twice the speed, roughly 4 times the wind resistance - btw that's not quite right but it illustrates the concept and I don't want to go into the exact physics). So slower bb's will suffer less wind resistance and thus will fly further.
Heavier bb's will also be blown off course slightly less by the wind.
However its not quite that simple. This is because of hop. We all know that if you turn hop right off range will be nowhere near as far as with it on (and I don't mean down to minimum i mean right off, zero hop at all). Hop has the greatest effect on range (obviously after straight power).
If your bb is so heavy that your hop unit cannot give it enough hop then you have to either change the hop (add a nub, different bucking etc) or use a lighter bb.
----------
tl;dr
Use the heaviest good quality bb that your hop unit can hop enough (enough can be a slight over hop to increase range another 10+m (30ft) or just to get it flying level if that's how you like to run).