Which smoothing filter do I need?
Gaussian, median, or bilateral -- the decision rule from a stated noise problem to the right filter.
Reach for this the moment a stated problem is "clean this image up" -- ask first whether the goal is denoising at all (as opposed to sharpening, a separate toolkit), then what the noise actually looks like: an all-over haze, a handful of wildly wrong pixels, or a mess where blurring real edges away is specifically not acceptable.
Step 1 -- what does the corruption look like?
Example
An all-over haze or light sensor noise spread evenly across the image -- convolve with the Gaussian kernel.
Example
A handful of isolated, wildly-wrong pixels (salt-and-pepper noise) -- replace each pixel with its neighborhood's median.
Example
Any noise model, when preserving real edges matters more than maximum smoothness.
Building block: what a Gaussian filter's weights actually are
The weighting scheme Gaussian smoothing convolves with -- also the smoothing stage inside the Canny pipeline.