Here is something that seems to work:
\documentclass{scrartcl}
\usepackage{fontspec,newunicodechar}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Minion Pro}
\UndeclareUTFcomposite[\UTFencname]{x1E0C}{\d}{D}
\UndeclareUTFcomposite[\UTFencname]{x1E0D}{\d}{d}
\UndeclareUTFcomposite[\UTFencname]{x1E25}{\d}{h}
\UndeclareUTFcomposite[\UTFencname]{x1E36}{\d}{L}
\UndeclareUTFcomposite[\UTFencname]{x1E37}{\d}{l}
\UndeclareUTFcomposite[\UTFencname]{x1E43}{\d}{m}
\UndeclareUTFcomposite[\UTFencname]{x1E46}{\d}{N}
\UndeclareUTFcomposite[\UTFencname]{x1E47}{\d}{n}
\UndeclareUTFcomposite[\UTFencname]{x1E5A}{\d}{R}
\UndeclareUTFcomposite[\UTFencname]{x1E5B}{\d}{r}
\UndeclareUTFcomposite[\UTFencname]{x1E62}{\d}{S}
\UndeclareUTFcomposite[\UTFencname]{x1E63}{\d}{s}
\UndeclareUTFcomposite[\UTFencname]{x1E6C}{\d}{T}
\UndeclareUTFcomposite[\UTFencname]{x1E6D}{\d}{t}
\UndeclareUTFcomposite[\UTFencname]{x1E44}{\.}{N}
\UndeclareUTFcomposite[\UTFencname]{x1E45}{\.}{n}
\makeatletter
\let\d\relax
\DeclareRobustCommand{\d}[1]
{\hmode@bgroup
\o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-1ex}.\hidewidth}\egroup}
\let\.\relax
\DeclareRobustCommand{\.}[1]{\accent"02D9#1}
\DeclareRobustCommand{\MACRON}[1]{\accent"AF#1}
\makeatother
\newunicodechar{Ḍ}{\d{D}}
\newunicodechar{ḍ}{\d{d}}
\newunicodechar{ḥ}{\d{h}}
\newunicodechar{Ḷ}{\d{L}}
\newunicodechar{ḷ}{\d{l}}
\newunicodechar{ṃ}{\d{m}}
\newunicodechar{Ṇ}{\d{N}}
\newunicodechar{ṇ}{\d{n}}
\newunicodechar{Ṛ}{\d{R}}
\newunicodechar{ṛ}{\d{r}}
\newunicodechar{Ṣ}{\d{S}}
\newunicodechar{ṣ}{\d{s}}
\newunicodechar{Ṭ}{\d{T}}
\newunicodechar{ṭ}{\d{t}}
\newunicodechar{Ṅ}{\.{N}}
\newunicodechar{ṅ}{\.{n}}
\newunicodechar{Ḹ}{\d{\MACRON{L}}}
\newunicodechar{ḹ}{\d{\MACRON{l}}}
\newunicodechar{Ṝ}{\d{\MACRON{R}}}
\newunicodechar{ṝ}{\d{\MACRON{r}}}
\begin{document}
\parbox{.5\textwidth}{
a A
ā Ā
i I
ī Ī
u U
ū Ū
ṛ Ṛ
ṝ Ṝ
ḷ Ḷ
ḹ Ḹ
e E
ai Ai
o O
au Au
ṃ ḥ
k K
c C
ṭ Ṭ
t T
p P
kh Kh
ch Ch
ṭh Ṭh
th Th
ph Ph
g G
j J
ḍ Ḍ
d D
b B
gh Gh
jh Jh
ḍh Ḍh
dh Dh
bh Bh
ṅ Ṅ
ñ Ñ
ṇ Ṇ
n N
m M
y Y
r R
l L
v V
ś Ś
ṣ Ṣ
s S
h H
}
\end{document}

As you see it's necessary to undo some of the work done by xunicode (which is automatically loaded by fontspec and needn't to be loaded explicitly). Also some of the standard accents must be redefined, or they wouldn't use the main document font.
Update 2017
The macros above work provided fontspec is loaded with the euenc option. On the other hand, the new default TU encoding doesn't declare composites with \d or \.N and \.n, so the code is simpler.
\documentclass{scrartcl}
\usepackage{fontspec}
\usepackage{newunicodechar}
\setmainfont{Minion Pro}
\makeatletter
\let\d\relax
\DeclareRobustCommand{\d}[1]
{\hmode@bgroup
\o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-1ex}.\hidewidth}\egroup}
\let\.\relax
\DeclareRobustCommand{\.}[1]{\accent"02D9#1}
\DeclareRobustCommand{\MACRON}[1]{\accent"AF#1}
\makeatother
\newunicodechar{Ḍ}{\d{D}}
\newunicodechar{ḍ}{\d{d}}
\newunicodechar{ḥ}{\d{h}}
\newunicodechar{Ḷ}{\d{L}}
\newunicodechar{ḷ}{\d{l}}
\newunicodechar{ṃ}{\d{m}}
\newunicodechar{Ṇ}{\d{N}}
\newunicodechar{ṇ}{\d{n}}
\newunicodechar{Ṛ}{\d{R}}
\newunicodechar{ṛ}{\d{r}}
\newunicodechar{Ṣ}{\d{S}}
\newunicodechar{ṣ}{\d{s}}
\newunicodechar{Ṭ}{\d{T}}
\newunicodechar{ṭ}{\d{t}}
\newunicodechar{Ṅ}{\.{N}}
\newunicodechar{ṅ}{\.{n}}
\newunicodechar{Ḹ}{\d{\MACRON{L}}}
\newunicodechar{ḹ}{\d{\MACRON{l}}}
\newunicodechar{Ṝ}{\d{\MACRON{R}}}
\newunicodechar{ṝ}{\d{\MACRON{r}}}
\begin{document}
\parbox{.5\textwidth}{
a A
ā Ā
i I
ī Ī
u U
ū Ū
ṛ Ṛ
ṝ Ṝ
ḷ Ḷ
ḹ Ḹ
e E
ai Ai
o O
au Au
ṃ ḥ
k K
c C
ṭ Ṭ
t T
p P
kh Kh
ch Ch
ṭh Ṭh
th Th
ph Ph
g G
j J
ḍ Ḍ
d D
b B
gh Gh
jh Jh
ḍh Ḍh
dh Dh
bh Bh
ṅ Ṅ
ñ Ñ
ṇ Ṇ
n N
m M
y Y
r R
l L
v V
ś Ś
ṣ Ṣ
s S
h H
Ḹ ḹ
Ṝ ṝ
}
\end{document}

\UndeclareUTFCompositedeclarations and the redefinition of\d. Probably also a redefinition of\.is necessary. – egreg Nov 27 '12 at 23:47\UndeclareUTFComposite. In LuaTeX even with\UndeclareUTFCompositethe dots are too big with the solution cited above. How am I supposed to redefine\dand\.? – Psychic Birdy Nov 29 '12 at 08:46