Heat butter in a 5- to 6-quart wide heavy pot over moderately low heat until foam subsides, then cook onions, garlic, and ginger, stirring, until softened, about 5 minutes.
Add curry powder, salt, cumin, and cayenne and cook, stirring, 2 minutes.
Add chicken and cook, stirring to coat, 3 minutes.
Add tomatoes, including juice, and cilantro and bring to a simmer, then cover and simmer gently, stirring occasionally, until chicken is cooked through, about 30 minutes.
Just before serving:
Pulse cashews in a food processor or electric coffee/spice grinder until very finely ground, then add to curry along with coconut milk and simmer gently, uncovered, stirring, until sauce is thickened, about 5 minutes.