How can I make XeLaTeX use “display”, “subhead”, and “caption” varieties of a font when appropriate?

I am using Adobe's Garamond Premier Pro and it has various varities for use with larger and smaller forms of text (see http://www.adobe.com/type/topics/opticalsize.html).

Is there a good way to make XeLaTeX use the proper face at the proper time (e.g., footnotes should be in caption, etc). Of course, some care must be taken that things like \emph properly work in the context.

-
Yes. It's described in the fontspec manual. –  Mico Dec 12 '11 at 5:07
The optical sizes are selected automatically; see this question –  egreg Dec 12 '11 at 8:46
It doesn't seem to be working… –  Aaron Yodaiken Dec 12 '11 at 22:37

The fontspec package allows you to tailor font variants by size.

Here's how I do it for Minion Pro; you'll need to adapt it for your case:

\usepackage{fontspec}
...
\setmainfont[%
Numbers=OldStyle,
Kerning=Uppercase,
SizeFeatures={%
{Size={-8.4},Font=* Caption},
{Size={8.41-13.0},Font=*},