The primary product of protein coding genes are mRNAs. When we talk about measuring gene expression we want to assay the steady-state levels of a specific mRNA within a cell. This is usually accomplished by starting with a large number of cells and harvesting all of the mRNAs from all of the cells. One way to measure the expression level of just one gene's mRNA is to perform a Northern Blot. Other sensitive methods include: an S1 nuclease protection assay, an RNAse protection assay, and a primer extension assay.
Microarrays have also been used extensively to measure expression levels of thousands of genes at the same time in a single experiment.
With the advent of RNA-Seq methodology it is possible to count the number of transcripts in an experiment (if you have a sequenced reference genome)