How to Remove Gaussian Noise from an Image without Destroying the Edges?
You might need to consider more advanced techniques. Here are two recent papers on edge-preserving denoising:


Edge-Preserving Image Denoising via Optimal Color Space Projection [in color] This paper preserves edges by decomposing the image into an "optimal" color space and performing wavelet shrinkage. The optimal color space belongs to the luminance/color-difference family (think L*a*b*, or YCrCb).
Edge Structure Preserving Image Denoising From the paper:



  Our method is based on [jump regression analysis], and consists of three major steps, outlined below. First, edge pixels are detected in the whole design-space by an edge detector. Second, in a neighborhood of a given pixel, a piecewise-linear curve is estimated from the detected edge pixels by a simple but efficient algorithm, to approximate the underlying edge segment in that neighborhood. Finally, observed image intensities on the same side of the
  estimated edge segment, as the given pixel, are averaged by the local linear kernel smoothing procedure (cf., [35]), for estimating the true image intensity at the given pixel.


(Jump regression models incorporate discontinuities using step functions. The primary author has a book on this subject.)