According to Sesame Street Unpaved and the Sesame Street 35th Anniversary Trivia Game, Elmo first appeared in 1979. He started out as a minor character, and became a major character in 1985.
But I've heard that at the Henson Film Festival from 2004 that Caroll Spinney said he originally played Elmo, who debuted as Baby Monster in either the second or third season. Though this fact must be really rare, as no other official source has acknowledged Baby Monster. It seems like nobody here even remembers the character. None of his sketches appeared on Noggin or Old School Vol. 1. Kevin Clash did mention in his book that Elmo was also called Baby Monster, but it seems like he thinks that Elmo was called both names at the same time. At Muppet Wiki there is a second season episode that mentions Baby Monster, with the description reprinted from an issue of Sesame Street Parents Magazine. It probably is the original Elmo, but there was a skit from the first season featuring a different monster who was called Baby Monster. That monster was used in a few sketches from the first season, but I think he was only referred to by name in one sketch, and don't think he had an "official" name.
According to Caroll Spinney's book, Baby Monster appeared in the early seasons, as part of the Monster Family, and after sketches with them stoped being made, Baby Monster was put in storage for years, and when it was decided to create a character named Elmo, the Baby Monster pupet was chosen (as opposed to designing and building a new character). Brian Muehl originally performed Elmo, and when he stopped performing on Sesame Street, Richard Hunt took over, but Hunt didn't like performign the character, and asked Kevin Clash to take over. Elmo became a major character after Kevin Clash took over the part.