ok, detailer(ex) to the rescue.
What happens is you get crud build up on your windsheild from just driving on roads and in traffic. Its small amounts of oil, construction, exhaust, ect ect. And then you wipe your windows and it all acumulates at the bottom of the window where the wipers park. This gunge is dragged across your window every time it wipes. And when oily crud and water mix, you get blurry rainbows.
What you need to do is lift your wipers up, and THOUROUGLY clean the window, especially that last 4 inches or so along the bottom. Use laquer thinner. Get a clean rag and pour some on it. Wipe a 1ft by 1ft spot really well, get a clean spot on the rag, do it again, till the whole window is clean. Then do it again, and see if any more crap comes off the glass. Keep going till its clean. Then either do the wiper blades or buy new ones.
Keeping the wipers up, clean your glass with normal glass cleaner, and let it and the wipers sit for a few. Put em down and pray for rain
This is also a good time to apply Rain X or similar products to your windshield. Both inside and out, its an anti fog as well.