For the marinade: Heat oil in a saucepan over medium heat, add onions and garlic and saut° until tender, about 3 minutes. Add ketchup, dark rum, Worcestershire sauce, cider vinegar, chili powder, paprika, cumin, coriander, cayenne pepper, salt and black pepper. Bring to a boil, reduce heat and simmer for 5 minutes. Cool to room temperature.
Brush salmon with 1/4 of the barbecue sauce, reserving the rest for dipping. Marinate fish in the refrigerator for 2 hours.
Preheat grill.
Place salmon skin-side down on lightly oiled grill. Cover and cook for approximately 12 minutes per inch of thickness. Close vents during the last 4 minutes for a more pronounced smoke flavor. Fish is done when it flakes easily with a fork. Serve warm with reserved barbecue sauce on the side.
Servings: 4