Rosemary oil also works well.
Hi, good old fashioned DEET works for me. It can be hard on the skin if worn for extended periods and you must keep it away from plastic, esp. glasses. The higher the deet % the better... I have found the Stewart Island sand flies ignore some 15% wipes I thought would be nice to take. It took about 5 layers to make a difference - then go through it again after washing. I did find some repel in a sports shop years ago that was awesome as you didn't need 100% coverage but I have never seen it again.
http://en.wikipedia.org/wiki/Insect_repellent has a lot of info on natural repellants.