Convolution Kernels for Image Filtering As I understand it, in image processing, when it is desired to apply a filter of some sort to an 2D image, a kernel is applied to all the pixels of the 2D image in a process called convolution. Median, Gaussian, Bilateral, all are examples of kernel. These kernels are applied in a similar fashion to that shown in this example http://www.songho.ca/dsp/convolution/convolution2d_example.html (which I found here, searching Signal Processing at StackExchange).

Is there a good list of all/many/most kernels, there uses, and an example before/after image?

Also, is it correct to say that all kernels are just matrices which get convolved against a source?
Be careful, a median filter cannot be expressed as a convolution, and thus is not considered a kernel in this respect. This is because the median filter is based on order statistics of an image patch, and the resulting pixel at the output of a median filter is not a linear combination of other pixels within a patch. 

Otherwise, you are right, kernels are generally thought of as just other 'small images', that one would convolve with the image to be analyzed. Those kernels can be chosen for a variety of reasons. Gaussian kernels are used for smoothing, laplacians are used for edge detections, etc. 

There are as many kernels as you can imagine. However usually we start with a particular application in mind, "I need to blur the image", or "I need to detect edges in the x-direction", and then find kernels that magnify those features we are after.