Melt 3 tablespoons of butter in a large sauce pan over medium heat.
Stir in onion and garlic, and cook for 5 minutes, stirring occasionally.
Add chicken and cook an additional 10-12 minutes.
Add the remaining butter to the saucepan, along with the tomato sauce, evaporated milk, salt, cayenne pepper, and garam masala.
Bring to a simmer over medium heat, then reduce heat to medium-low; cover, and simmer for 30 minutes, stirring occasionally.
Serve over cooked rice sprinkled with fresh cilantro, if desired.