A few suggestions I haven't seen explicitly stated in the other answers.
When you export your STL files you can increase the resolution. If dimensional accuracy is extremely critical, you'll want to confirm that the STL conversion process hasn't altered the dimensions of curved surfaces outside your max min tolerances. I.e. open your STL file in you CAD program and then re-measure the resulting surfaces. STL conversion for holes makes the wholes slightly smaller, and external curved surfaces slightly larger.
I've noticed on my printer that parts are typically slightly larger when printed. I've managed to account for this in my CAD model by shrinking certain dimensions slightly in CAD prior to exporting them. My dimensions are typically off by about 0.1-0.2mm in XY, which if you're making something with close fits it's worth tweaking the file prior to printing.
If I've got a part that needs to be perfectly flat, I'll use a raft with an additional ring (or two) of helper discs surrounding the part. For the flattest side I'll also print this on the build plate. If you've got two or more, best judgement.
If i have a part with flat surfaces that are at angles to the the build platform I'll slow my extruder way down, 10mm/s is my go to speed. Keeping the extruder moving slowly will help to ensure that your edges and walls will be relatively smooth and with the least amount of distortion.
Calibration and setup
Everyone has said it, I'll say it again. Check your printer prior to a critical print. Any sag in your belts will cause drooping, Print a test part to ensure that your temperature settings are good for your filament, and that your extraction distance will minimize stringing.
I do a few test prints with a new filament and again about half way through a roll to ensure everything is still working properly, and if needed I'll tweak things as needed.