Desi refers to things indigenous to India or South Asia, for instance desi food, desi movies, desi wear. It is used for people too, as in the movie American Desi. The OED says it's from Hindi देसी desī "indigenous, rural, from the country". It's also in Urdu (ديسي), Punjabi (ਦੇਸੀ) and Bengali (দেশি). According to the Oxford Hindi-English dictionary, it's derived from Sanskrit deśī "the vulgar dialect of a country, provincialism". According to Platts it's from deśīya "peculiar or belonging to or inhabiting a country , provincial , native".
The Cologne Digital Sanskrit Lexicon confirms my guess that deśī is related to deśa "region, spot, place" and the verb deś "to show, point out". deśa is found in place names like Bangladesh "country of Bengal", Uttar Pradesh "upper country", and Madhya Pradesh "middle country".
The Proto-Indo-European root is *deiḱ- "to show". It shows up in digit from Latin digitus "finger" (as in "pointer"), and possibly toe (from Proto-Germanic *taihwō-). And avenge, from Old French avengier, from Latin uindicāre "to avenge". The uin- is possibly from uis "force", and -dicāre is from *deiḱ-.