These images are saved to view on the website as jpgs, which means that they're not vector images.
You can use most design programmes to create these, but ideally you'll have to save them as raster files (not vector files) which means a jpg, gif or png file.
Adobe photoshop or illustrator would work well, but there are some brilliant freeware programmes that do the same thing without the $$$$$ cost! Have a look at GIMP - it's a bit of a learning curve but it can do almost anything photoshop can do and some it can't!
http://www.gimp.org/
Or inkscape - this is good for vector images: http://inkscape.org/
MSFans have paint.net http://www.getpaint.net/index.html
Aviary is an editing suite that includes vector, pixel and 3D graphics programmes with freeware and professional versions: http://www.aviary.com
or adobe do a free version: http://www.photoshop.com/tools (not sure if it does pixel editing)
You'll need to be able to edit pixels to create headers. Just be sure to keep the file-size down as much as you can and, where possible, use repeating images to create bars or headers as this will make the page load much more quickly.
It depends on your time, ability and interest on whether you need a designer. If you want it done very quickly and to a high standard, then you should probably outsource it - it's likely to cost you anything from $200 - $500 to get designed. If you've got some time to spare, then you should be capable of doing it yourself.
Both a graphics designer or web designer are capable of doing it, but most web designers are a hybrid of graphics and programming and (in my opinion) are more likely to understand the limitations imposed by designing for the web.
I hope this helps!