What on earth is "a semi formal"? With the vagueness of current dress-code interpretation that could mean anything from black tie down to 'anything but trainers or shorts'.
The suggestion above of navy blue is good, either a plain blue or something like a pin-dot. I don't really like yellow ties much, and I especially wouldn't wear one with a white shirt (too little contrast) but if you want to tie your outfit together with your date's dress then a dark green tie might also work. 'Matching' with your date is generally frowned upon here, as it is tacky and usually looks forced, but I think a dark green tie can look good on it's own; just make sure it doesn't precisely match the colour in your date's dress.