If you are zoomed in close, you need to use Cycle Mean. Otherwise, the little extra bit of the waveform that doesn't fit on screen / in the waveform buffer won't average out correctly. The average of sin(x) is only zero after every cycle (x from 0 to 2pi, 4pi, etc.), and nonzero inbetween.
If you are zoomed out, use plain Mean. Cycle Mean will try to calculate too small of a sample, and give ridiculous results (unless you have deep memory that's keeping a close-up view, in which case the above applies and you're still fine). You may still see errors if the waveform is aliased, so you shouldn't zoom out too far either.
Additional precision can be had by applying channel and visual filtering: set the channel bandwidth as low as you can, set acquisition mode for Hi-Res or Averaging (>8 averages), or set a lowpass filter option. The average of a signal is the same as zero Hz (DC), so you can't filter too much: the only drawback to heavy filtering is it may take a while to calculate (i.e., for a cutoff frequency of <1Hz, you must record at least >1s of data).
As for differences in peaks, with respect to zero: those should be symmetrical around the average, for a signal that does not contain even harmonic distortion.
Mind that your oscilloscope may not measure the peaks to better than 0.4% precision (i.e., 8 bits of resolution). Max/min functions take the single sample that stands out above all others, so you gain absolutely no resolution with deep memory -- to get useful precision, you need to use a more sophisticated measurement, like FFT.
Tim