Desi is a name for people living in South Asia (Indian Subcontinent) or originally from there.
The word itself is from Sanskrit (and borrowed by most South Asian languages), meaning national or of the motherland (pronounced deshi in formal speech). Its use emphasizes the pride in our culture and way of life. Originally the name was used first as a self-description by emmigrants from South Asia into North America and Western Europe. At home the people are separated by religion, caste, language, political boundaries, while among foreigners the common features overcomed many differences.
The name began to be used also for the people in the Subcontinent as an easy and political correct solution to name somebody from there.
Many non-Desi (videshi) use quite indiscriminate the word Indian for South Asian people and cultural items. This might be considered offensive by non-Indian Desi (India is just a part of the Subcontinent) and moreover this word has a foreign origin and tend to express the others view of the Subcontinent.