FEA way already gave a good description.
Here are my tips:
A) The so-called "superconvergence" of results at integration points is valid only for certain element types and integration schemes. In practice, with a reasonable mesh density, it does not matter if you inspect the stresses mid-element or at integration points
B) Do not use averaged stresses (or so-called "isolines" or "averaged stress countours" or whatever other name the software applies to their method of "averaging") for any analyses which may be considered detailed, e.g., for elastic-plastic analysis with solid or shell elements involving contact (bolt bearing against bolt holes etc.). If you wish to find bending moments of a beam with a "height/2" or similar discretization accuracy, averaging should be less of an issue.
C) Use nodal values of stresses whenever possible, because results will always be most accurate at those points - anything shown inside an element is produced by interpolating the solved nodal degrees of freedom.
Finally, the difficulty in FE analysis is usually not choosing the post-processing, but rather ensuring that everything (geometry, material model, dimension reduction model (beam, plate, shell), kinematic assumptions (moderate rotations or infinitesimal rotations), boundary conditions, non-linearities, loads) is realistically modelled and solved with a robust and reliable solver (Arc length method for snap-through problems, for example) if any non-linearities are present.
The problem is seldom in the numerics, but rather in what you as the user command the FE program to do.