In a pan, heat butter and add the onions. Sauté till light brown and then add the garlic and ginger.
Sauté for another 2-3 minutes and then add the spices except salt. Mix well and cook on low heat for another minute and then add the tomatoes.
Increase heat and continue to sauté till the tomatoes have turned mushy and the whole mixture begins to come together.
At this stage add vegemite; mix well, taste and then season with salt as the vegemite is naturally salty.
Balance flavours with lemon juice and remove from heat. Allow to cool.
Rub the chicken pieces with salt and pepper; apply the prepared masala (reserve a little) liberally all over the chicken pieces and refrigerate for at least 30 minutes or as long as you can. Bring to room temperature before roasting.
Heat the oven to 200°C (fan forced) and line an oven proof tray with baking paper. Place the chicken pieces inside (skin side facing upwards) along with the diced onions. Apply a bit of the reserved vegemite masala over the onions and sprinkle with salt.
Roast for 15 minutes and then turn the chicken pieces over; add the mushrooms at this stage. Apply the remaining masala over the chicken and roast again for another 10 minutes.
Turn the chicken pieces over again, increase heat to 220°C and cook for another 5 minutes (or till done) to brown the skin.
Remove from oven, keep covered and allow to rest for at least 10 minutes before serving.