Combine yogurt, lemon juice, all spice, kashmiri chili powder and salt in a large bowl to prepare the marinade for chicken tikka. Mix well and add the chicken pieces. Mix well again so that all the chicken pieces get evenly coated with the marinade. Cover the bowl and keep it in the refrigerator for 45 minutes.
Heat oil in a deep non-stick pan. Add the sliced onions and garlic. Sauté for 3-4 minutes (while stirring continuously) or till the onions turn golden brown in colour. Then add the tomatoes, ginger, salt and kashmiri red chili powder. Keep sautéing until the moisture gets evaporated and oil starts oozing on the sides of the masala paste. Add whole milk and continue sautéing until it becomes a thick masala paste. Turn off the heat and let it cool.
Once cooled, transfer the masala paste into a blender along with 1 cup of water and blend it till smooth. Transfer this paste to the same pan, add another cup of water and let it boil. When the water starts boiling, cover the pan, reduce the heat to low and let it simmer for 5 minutes.
Pre-heat the oven to 200oC. Skewer the chicken pieces, place the chicken skewers on a baking tray and brush with oil. Place the baking tray on the top shelf of the oven and cook for 8 minutes. Turn the skewers over, brush with oil and return to the top shelf of the oven for another 7 minutes.
When the chicken skewers are cooked, reheat the sauce and add the chicken tikka. Simmer the chicken tikka in the sauce for 2 minutes.
Serve hot with roti or naan bread