RNA polymerases, often abbreviated to RNAP, are the enzymes in a cell responsible for synthesizing strands of RNA. Because this function is essential to life, all organisms (and quite a few viruses) contain at least one type of RNA polymerase. Depending on the RNA polymerase, transcription requires either a DNA or an RNA template; although in most contexts, "RNA polymerase" refers to the DNA-dependant RNA polymerases, which use a DNA template to transcription genes into mRNA ("messenger" RNA). Reverse transcriptases are enzymes (usually associated with retroviruses) that perform the opposite function, using an RNA template to synthesize a DNA product.
Most prokaryotes and archaeans use the same RNA polymerase to transcribe mRNA and functional non-coding RNAs (e.g. ribosomal RNAs or transfer RNAs. However, eukaryotes (organisms in which the genetic material is contained within a nucleus) use specialized RNAPs, each responsible for transcribing different classes of RNA.