Check out this CSS3 solution on jsFiddle.
In the long run, using CSS3 radial-gradients will be more efficient than relying on heavy background images. No need to create, maintain, serve, download, or cache them anymore with CSS3.
Simply utilize CSS3 radial-gradient and use a generator for what you need. Here's the code:
/* IE10 Consumer Preview */
background-image: -ms-radial-gradient(center, circle farthest-corner, #FFFFFF 0%, #00A3EF 100%);
/* Mozilla Firefox */
background-image: -moz-radial-gradient(center, circle farthest-corner, #FFFFFF 0%, #00A3EF 100%);
/* Opera */
background-image: -o-radial-gradient(center, circle farthest-corner, #FFFFFF 0%, #00A3EF 100%);
/* Webkit (Safari/Chrome 10) */
background-image: -webkit-gradient(radial, center center, 0, center center, 506, color-stop(0, #FFFFFF), color-stop(1, #00A3EF));
/* Webkit (Chrome 11+) */
background-image: -webkit-radial-gradient(center, circle farthest-corner, #FFFFFF 0%, #00A3EF 100%);
/* W3C Markup, IE10 Release Preview */
background-image: radial-gradient(circle farthest-corner at center, #FFFFFF 0%, #00A3EF 100%);
A. Currently, vendor prefixes are necessary for cross-browser rendering.
B. Is it difficult to write? Not at all! It's simple and represents the new way of CSS3. Just use a "CSS3 Generator #what you need#" like in the case of radial-gradient. The same applies to box-shadow, text-shadow, transform, animation, etc.
Explore numerous CSS3 generators here.
Take a look at another jsfiddle involving opacity, getting closer to the example image.