We actually have a portion of our medical application that is a document and imaging product that allows images to be stored in either a database or on disk (if they use SQL Express then this would be the road they take). We try not to serialize anything in regards to images as it really bloats the file and makes it larger. So when we use the database side, we store the image as a JPG, PNG, etc. as a byte array in a VarBInary(MAX) field. But when pulling form disk, just give the bitmap the path:New Bitmap("c:\myimage.jpg")
We have a shared class that gives us all of the logical installed paths (this path can be set by the end-user) so we add that logic in as well which can be placed in the BO (custom code property).