Вот кое-что в гугле нашел, поколдовал и вот что получилось (края только подровнять нужно). Что скажете?
<div class="content">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="620" height="412">
<mask id="mask1">
<ellipse cx="50%" cy="50%" rx="40%" ry="43%" fill="white" filter="url(#filter2)"></ellipse>
</mask>
<image xlink:href="http://www.imageup.ru/img133/2542020/preload.png" width="640" height="412" mask="url(#mask1)"></image>
</svg>
<svg width="0" height="0">
<defs>
<filter id="filter2">
<feGaussianBlur stdDeviation="20"></feGaussianBlur>
</filter>
<linearGradient id="gradient" x1="0" y1="00%" x2="0" y2="100%">
<stop stop-color="black" offset="0"></stop>
<stop stop-color="white" offset="1"></stop>
</linearGradient>
</defs>
</svg>
</div>