Skip corrupt part of jpeg
This is a hard problem because the image data is encoded using variable length codes (VLC's).  This means that the starting bit of each DCT coefficient is dependent on all of the previous coefficients.  A single bit error will often produce a different code length for that coefficient and in turn throw off the alignment for the rest of the image.

I have written automated programs before to toggle bits around where the first corrupt block is and try to find where the errors might be.  Basically, it just toggles a bit, redecodes the image, and runs some kind of metric to determine if it helped or not.  This method may or may not work if there are multiple bit errors close together.  The key is that you don't necessarily need to fix all bit errors, just produce a VLC that is the right length to recover alignment.