this is easy:
Image img = new Image();
img.ImageUrl = "/_layouts/images/imageyouwant.gif";
Controls.Add(img);
sharepoint can be fussy sometimes with the naming of the file extension.
You can try the following: rename the image file from .gif to .GIF so then you can do:
Image img = new Image();
img.ImageUrl = "_layouts/images/myfolder/image.GIF";
Controls.Add(img);
if it doesnt show up or if like your case you have created new folders in 12hive within the image folder you then need to check to see if the folder security inheritence is set properly.
goto the following:
12hive -> Templates -> images -> find your folder where the file is stored within in your cas "myfolder" -> right click the folder -> select properties -> select security tab -> select advanced -> check "replace permission entries on all child objects with the entries shown here that apply to child objects" -> click ok -> do iisreset
that should do the trick ;)
if it doesnt can you check to see the groups or user names within the security tab? so you would need to do the same as above but this time on the image file rather than the folder. take a note of groups and names. You can either post it here or you can goto the image folder and select any image that is working and check their group or usernames to see if its the same and what is missing :)
hope it helps :)