It would be difficult to say precisely when the response "No problem" first entered the public vernacular, but its use (or more precisely, overuse) has been a point of contention among etiquette and grammar experts for decades. Some have no problem with a "no problem" response during an informal exchange, while others believe it is far too casual to be an acceptable response to a gracious "thank you."
As far as why many people prefer "no problem" to more formal responses could be a matter of habit and age. Older people tend to respond to an expression of thanks with more traditional phrases such as "you're welcome" or "my pleasure." These responses reflect a certain humility on the part of the person being thanked. The person offering thanks is grateful for the service performed by the one being thanked, and a gracious "you're welcome" acknowledges the gratitude.
Younger people often tend to offer alternative responses when thanked, especially during less formal situations. By saying "no problem," the recipient of the gratitude is actually saying "this act or service did not inconvenience me in any way." The difference is subtle, but for some people "no problem" puts slightly more emphasis on the recipient's personal welfare. A ticket agent who provides an airplane ticket for a customer, for example, is only performing one of his or her normal tasks. If the customer says "thank you," a more formal "you're welcome" would be considered more appropriate than "no problem."
Some people compound this grammatical and social dilemma by offering even more informal responses such as "no prob" or the pseudo-Spanish "no problemo." While the sentiment might be perfectly acceptable, the informality could definitely be seen as inappropriate to the occasion. Some etiquette and grammar experts would prefer to see the complete eradication of "no problem" from the popular vernacular, but others believe it is not as offensive as other possible responses or even non-responses.
So for the foreseeable future, it would be perfectly acceptable to issue a "no problem" in response to a friend's informal expression of thanks, but avoid using it during more formal or professional situations.