Make a roux:
In a medium saucepan, melt the butter over medium heat. Once melted, whisk in the flour and cook, whisking constantly, for 2-3 minutes, until the mixture turns a light golden brown. This forms the roux, which will thicken the gravy.
Add the broth:
Slowly whisk in the beef or chicken broth, ensuring there are no lumps. Continue whisking as the gravy comes to a simmer.
Season the gravy:
Stir in the soy sauce (if using), garlic powder, onion powder, and salt and pepper to taste. Let the gravy simmer for 3-5 minutes, or until it thickens to your desired consistency. If it becomes too thick, you can add a bit more broth or water to thin it out.
Serve:
Once the gravy has thickened and is smooth, remove it from heat and serve over mashed potatoes, roast beef, turkey, or any dish that could use a savory, comforting sauce.