You are on the right way, but you should make up your mind what you want to whant to gain:
If you want to develop a method telling you wheter the content of a file is considered a .Net recognized picture image, your approach is totally fine.
I start with your (slightly) overworked code:
Function IsValidImage(filename As String) As Boolean
    Try
        Using img As System.Drawing.Image = System.Drawing.Image.FromFile(filename)
            ' the file could be opened as image so it is valid
            Return True
        End Using
    Catch notValidException As OutOfMemoryException
        ' Image.FromFile throws an OutOfMemoryException  
        ' if the file does not have a valid image format or 
        ' GDI+ does not support the pixel format of the file. 
        ' 
        Return False
    End Try
    ' Every other Exception is considered not to be able too look whether the
    ' file is an Image or not, so it should be thrown to outside
End Function
Don't misjudge this approach as using Exception for control flow, you are only reacting to the one thrown if the content of the file is not usable for creating an Image. This let's the decision on the framework whether the file is valid for an Imageor not.
Let's refine your Method a little bit, so that you can determine wheter the image in the file does not exceed a given size:
Function IsValidImage(filename As String, maxSize As Size) As Boolean
    Try
        Using img As System.Drawing.Image = System.Drawing.Image.FromFile(filename)
            ' Returns True if the image is smaller or equal than maxSize
            Return img.Size.Width <= maxSize.Width AndAlso
                img.Size.Height <= maxSize.Height
        End Using
    Catch notValidException As OutOfMemoryException
        Return False
    End Try
End Function
Also this is not a misuse of Exceptions. It is a practice of fail fast: if I can't get an Image the file is not an Image. Otherwise I check the dimension on the opened Image, making my outcome dependent on operations done with it.
Misusing an Exception for control flow could, but must not be the following:
Sub CheckImage(filename As String)
    Try
        Using img As System.Drawing.Image = System.Drawing.Image.FromFile(filename)
        End Using
    Catch notValidException As OutOfMemoryException
        Throw New FileIsNoImageException()
    End Try
End Sub
Try
    CheckImage("c:\path\to\your\file.ext")
    'do something
    '
Catch invalid As FileIsNoImageException
    'do something else
    '
End Try
Even this approach has a valid usage if you consider a file not beeing an Image as an error.
But normaly you would do this in functions which give you the Image as return value.
But this is a tottaly no go:
Sub CheckImage(filename As String)
    Try
        Using img As System.Drawing.Image = System.Drawing.Image.FromFile(filename)
        Throw New FileIsImageException() ' DON'T DO SUCH A CRAP
        End Using
    Catch notValidException As OutOfMemoryException
        Throw New FileIsNoImageException()
    End Try
End Sub
Try
    CheckImage("c:\path\to\your\file.ext")
Catch valid As FileIsImageException
    'do something
    '
Catch invalid As FileIsNoImageException
    'do something else
    '
End Try
@Tim, I beg your pardon, but I can't hear this Exception use is a bad practice tale any more.