The reason why the image doesn't show up in the email is because value="{!$Resource.myResourceImage}" generates a relative URL from which the image is rendered (i.e. "/resource/1312483024000/logo"). This URL is accessible only for authenticated platform users.
To solve this problem, images should be stored in documents and with "Externally Available Image" checked. The image will be available by using the following markup:
<apex:image id="theImage" value="https://c.<instance>.content.force.com/servlet/servlet.ImageServer?id=<document_id>&oid=<organization_id>" width="200" height="200"/>