Poach the chicken: Place the chicken, broth, onion, celery, and carrots in a large Dutch oven. Bring to a simmer and cook until the chicken is tender and pulls apart easily, about 30 minutes.
Shred the chicken: Remove the chicken from the pot and let it cool slightly, then shred it into bite-sized pieces with two forks. Keep the broth simmering on low.
Strain the broth: Pour the broth through a strainer into a bowl if you prefer a smoother base, discarding the vegetables and bones. Return the strained broth to the pot.
Mix the dumpling dough: In a bowl, combine 2 cups flour, baking powder, and 1/2 teaspoon salt. Stir in the melted butter and milk until a stiff dough forms.
Rest the dough: Let the dough rest for 10 minutes on a lightly floured surface. This makes it easier to roll out without tearing.
Roll the dumplings: Roll the dough out to about 1/8 inch thickness, dusting with flour as needed to prevent sticking. Cut into strips roughly 1 inch wide and 3 inches long.
Cook the dumplings: Bring the broth back to a gentle simmer and drop the dumpling strips in one at a time, stirring occasionally. Cook until they float and turn slightly translucent at the edges, about 10 minutes.
Return the chicken: Stir the shredded chicken back into the pot and let everything simmer together for 5 minutes so the flavors combine.
Thicken the broth: If the broth is thin, whisk the remaining 1/2 cup flour with a little cold water into a smooth slurry and stir it in. Simmer for 3 to 5 minutes until the broth coats the back of a spoon.
Season and finish: Stir in the black pepper, remaining salt, and the optional heavy cream. Taste and adjust seasoning before serving.
Serve warm: Ladle the chicken and dumplings into bowls while hot, making sure each bowl gets plenty of broth and dumplings.