Heat olive oil in a large saucepan over medium heat. Add onions and garlic and cook until soft, about 4 to 5 minutes. Add ginger and continue cooking for 2 minutes. Add spices and cook for 2 to 3 minutes. Add tomatoes and their juice, water, brown sugar, tamarind paste and serrano and stir to combine. Cook for 30 to 40 minutes, or until thickened, stirring occasionally. Remove from heat, add cilantro and place in a food processor, process until smooth. Season with salt and pepper, to taste. Let cool.
For the ribs: Preheat grill to medium-low heat. Brush ribs on both sides with the olive oil and season with salt and pepper to taste. Grill ribs slowly with the cover closed for 2 to 3 hours over medium to medium-low heat until tender, turning every 10 minutes. During last 15 minutes of grilling, baste with some of the bbq sauce. Remove from the grill and immediately brush with more bbq sauce.