If you have the Image Processing Toolbox (to check if you do type 'ver' in the command window), look up "fspecial" which is very handy.
1) Among others you can use a median, mean or gaussian filter (i.e. low-pass) to smooth the image and reduce noise. The median is less sensitive to outliers than the gaussian and preserves considerable details. You can implement this filter like the following using medfilt2, which requires a grayscale image so you need either to use rgb2gray(YourImage) or take individual channels:
for Channel = 1:3
MedianFiltered(:,:,Channel) = medfilt2(YourImage(:,:,Channel),[Radius Radius]);
where [Radius Radius] can be modified to span larger areas from which to compute the median. Larger radius yields more blurry images with less details. You can also compute other filters with "fspecial" I mentionned above, like mean or gaussian filters.
If you don't have the Image Processing Toolbox you can make up your own mean filter, for example, using convolution like the following. More info about convolution can be found on Wikipedia here
kernel = ones(3,3)/9;
FilteredImage = conv2(YourImage,kernel,'same');
2) The second part of your question looks like an image segmentation problem. Look here for nice examples on the Mathworks website.
Hope that helps!