Note that, whenever you include an image from another website in a question, stackoverflow doesn't actually store a copy of that image. Instead, it stores the location (URL) of the image. Whenever stackoverflow generates html for a page like this, it embeds that URL into the src attribute of the image tag. If you look at the html source of this page, you will see that the image tag for the picture you included in your question looks something like this:
<img src="http://moco-sux.net63.net/palm-sig.jpg">
Every time a user views your question, his/her browser makes a request for that image from the web server that hosts it. In this case the domain name of that web server is moco-sux.net63.net.
As others have explained, when a web server receives any kind of internet request, it has complete control over how it responds. The fact that the extension of the filename at the end of the URL is .jpg does not necessarily mean that the web server will simply respond with a static image file. Instead, the web server can be configured to respond with a dynamically generated image file that contains your IP address.
So it's not the actual jpeg that computes your IP. Rather, the web server that receives the image-request crafts a jpeg file on the fly, just for you. Try uploading the picture to another web server. My guess is that its IP predicting capabilities won't be nearly as sharp : )