Since DNA is double stranded and each strand is complementary to the other, the codons on each strand will come out to be different after transcription(depending on the reading frame). Does this mean "each strand of DNA" codes for different set of proteins?
My understanding is that the antisense DNA strand (3'-5') makes the (sense) mRNA hence protein coding DNA strand where as the sense DNA strand (5'-3') is the non-proteins coding DNA strand. Hence the sense DNA produces antisense non-coding RNA, which ultimately acts as a translational regulator (http://en.wikipedia.org/wiki/Antisense_strand). The only reason sense DNA strand is called the the sense strand is because it is complementary to the sense RNA or mRNA.
There are a few confusions here, I will try to get them resolved without adding more:
First, a gene is always read in the 5' -> 3' direction, no matter on what strand of the double helix is is located. In the traditional way of writing down DNA the forward (or +) strand is written from left to right, the reverse (or -) strand from right to left. So even is you draw a gene map like the one below, the genes which run on the reverse strand.
For the transcription the reverse strand (it doesn't matter if it is the + or - strand) is not important. You can even have different genes on forward and reverse. In many cases the reverse strand doesn't code for any genes though.
DNA is not always double stranded. Anyway, typically, you have islands of protein-coding genes in both strands in all six frames, i.e. a set of genes in the forward strand, then a set of genes in the reverse strand, then again a set of genes in the forward strand, etc.