Prick the eggplant all over with the tip of a knife and rub the skin with a little olive oil.
Place it over a hot grill (BBQ) or under the broiler (grill) and cook a couple minutes each side, turning as it softens. Once it is completely soft (you can test with a skewer) remove from heat and cover with foil to let it steam for around 20 minutes, ideally. You can cook the eggplant ahead and leave to cool completely, if that suits better.
Chop up the eggplant flesh, with or without the skin as you prefer. If you like, peel the tomatoes or simple remove core and dice. Finely chop the garlic.
Warm the oil in a medium pan over a medium heat. Add the garlic, cumin and paprika and cook for a minute to get them fragrant then add the tomato and salt. Cook for a minute or two to soften then add the eggplant. Cook the mixture down, stirring regularly, to evaporate some of the liquid (around 15 minutes or so).
When it reaches the thickness you prefer, stir through the cilantro and serve warm or room temperature.
Notes
You can leave the eggplant with or without skin, as you prefer. Without skin will give a smoother texture and will break up to more of a dip. With skin will be chunkier and the skin may be a little more bitter. Here I have removed the skin.