<p>I'm downloading some images from a service that doesn't always include a content-type and doesn't provide an extension for the file I'm downloading (ugh, don't ask).</p>

<p>What's the best way to determine the image format in .NET?</p>

<p>The application that is reading these downloaded images needs to have a proper file extension or all hell breaks loose.</p>

Try loading the stream into a System.IO.BinaryReader.
Then you will need to refer to the specifications for each image format you need, and load the header byte by byte to compare against the specifications.  For example here are the
PNG specifications
Added:  The actual
file structure
for PNG.