Melt the butter in a large pot or Dutch oven over medium heat. Add your diced onion and cook for about 4 minutes, stirring occasionally, until it gets translucent and kinda soft. You're building flavor here, so don't rush this step.
Toss in the minced garlic and grated ginger, stirring constantly for exactly 1 minute. The kitchen starts smelling amazing right about now. Don't let the garlic brown or it'll taste bitter — keep the heat at medium.
Stir in the curry powder and tomato paste, mixing everything together really well. Let it cook for another minute so the spices bloom and release their oils. This makes a huge difference in how flavorful your sauce becomes.
Add the chicken pieces to the pot and cook for about 5 minutes, turning them occasionally so they get a little color on all sides. Don't panic if they're not cooked through — that happens in the sauce next.
Pour in the coconut milk and chicken broth, stirring gently to combine everything. Bring it to a gentle simmer over medium heat, then reduce to medium-low. I keep mine at a steady bubble, not a rolling boil.
Let the coconut curry chicken simmer for about 20 minutes, stirring occasionally, until the chicken is completely cooked through. The sauce will thicken slightly and become silkier. Taste it at the 18-minute mark and add salt and pepper as needed.
The curry's ready when you can't see pink inside the chicken pieces and the sauce coats the back of a spoon. Mine always has a few darker edges where the coconut milk catches the bottom — that's totally fine and adds extra flavor.