Dumb question here, but have you ever tried just plain dish soap, water, followed up by a cotton towel?
Streaks are generally caused by residual oil (or cleaner, for that matter) left on the glass. If you dilute the soap in the water, and wash the glass that way, the soap can bond with the oils, and not leave much of a resedue behind (thin at best).
I usually clean my glasses with plain hand soap and rinse them in water. I usually get no streaks whatsoever. And trust me, I KNOW when my glasses aren't clean.