My preferred method is to use symmetric tolerancing (20.5 +/- 0.5, in this case). All the methods that CheckerHater mentioned effect the same result when toleranced appropriately, but drawing dimensions are commonly generated from 3D CAD data that is also used to program toolpaths with CAM software. If your model is created at one extreme or the other, file or toolpath manipulation will be required to target middle tolerance during manufacturing (also note that the nominal dimension is not considered a "target" for manufacturing purposes).
You can help to eliminate potential sources of confusion for your programmer, machinist, inspectors, etc. by using symmetric tolerancing which will in turn make your life easier.
Jake