The error in your first code snippet is the quotation marks around @piece.image_url. Fix: remove the quotation marks.
The error in your second snippet is that you're just outputting the string "<img src=(h @piece.image_url) width=20% height=20% />". So you're not executing (h @piece.image_url). Fix: Remove <%= %> around the string and put <%= %> inside the img tag like this:
(note that this does not link to the image)
<img src=<%=h @piece.image_url %> width=20% height=20% />
The solution that I like most is using the image_tag helper (your first snippet):
<% for piece in @pieces -%>
<%= link_to image_tag(@piece.image_url, :size => "100x100", :border=>0), :action => 'show', :id => piece %>
<% end %>