I'd recommend DIY myself. If you have a mop/polisher go this site-
www.autojoy.co.uk
Click on "Farecla" (amazing stuff we use it at my place), get a bottle of G3 Advanced Compound. If you dont have a compounding head on your mop you need to get hold of one of those too, its a white, firm sponge called a "G Mop".
If you have the mop and compounding head, and some G3, fill a bucket of water and start with the bonnet, dip your hands into the bucket and flick water evenly over the first half of the bonnet, then put a splodge of G3 on the mop and spread it about with your finger, and away you go. Use a microfibre cloth or some mutton cloth to polish it off. Just repeat this round the car and it'll look the nuts.
The reason you get swirl marks on you paint is one of 3 things: 1) Car washes that still use horrid bristles, 2) Grit in the water you wash you car with or mopping without water on the panel, the water keeps the panel cool and stops the mop drying out, therefore stopping it putting swirls in the paint.
If youre feeling really energetic you could get some Farecla "Black top" Hand Glaze from the same site, just wipe on wipe off. Just try not to get any water on it for a while.
Hope this helps as a general "how to".
Cheers,
Alex.