Finely chop onions and garlic, or blend in a food processor if you want a smoother sauce. Heat a small amount of oil in a saucepan and saute onions and garlic until softened and translucent. Add tomato puree. Add all other ingredients; stir well. Simmer for 30 minutes or so, stirring occaisionally.
Most recipes call for more molasses (or bown sugar), but I prefer a less sweet bbq sauce. I think most commercial brands are a bit too sweet. If you like a sweeter bbq sauce, you will want to use 1/2 to 2/3 cup molasses instead. You may also want to adjust the chipotle powder depending on how hot you like it.
Because this has sugar in it, it will burn if left on the grill too long; apply toward the end of cooking, give or take depending on how high the heat is.