Place ribs in a large stockpot. Add salt, peppercorns, garlic, onion, and bay leaves. Cover completely with cold water.
Bring to a boil over high heat, then reduce to a gentle simmer. Cover and cook 1 hour, until fork-tender.
Preheat oven to 325°F and line a large baking sheet with foil.
Drain ribs and pat dry with paper towels.
Mix optional dry rub ingredients and pat over both sides of the ribs, if using.
Place ribs meaty-side-up on the baking sheet and brush with about 1/2 cup BBQ sauce.
Bake 30 minutes. Remove and brush with another 1/2 cup BBQ sauce.
Bake 20 more minutes. Brush with a final 1/2 cup BBQ sauce and bake 10 more minutes.
Optional: broil 2 to 3 minutes for extra char, watching closely.
Rest 5 to 10 minutes, slice between bones, and serve with remaining BBQ sauce.
Notes
Baby back ribs cook a little faster than spare ribs, so watch for meat pulling back from the bone tips. Patting the ribs dry before saucing helps the BBQ sauce stick and caramelize. To make ahead, boil the ribs the day before, refrigerate, then sauce and bake before serving. Leftovers keep refrigerated for up to 4 days.