Given a sequence $mathbf{k} := (k_1,ldots,k_s)$ of natural numbers and a graph $G$, let $F(G;mathbf{k})$ denote the number of colourings of the edges of $G$ with colours $1,dots,s$ such that, for every $c in {1,dots,s}$, the edges of colour $c$ contain no clique of order $k_c$. Write $F(n;mathbf{k})$ to denote the maximum of $F(G;mathbf{k})$ over all graphs $G$ on $n$ vertices. This problem was first considered by ErdH{o}s and Rothschild in 1974, but it has been solved only for a very small number of non-trivial cases. In previous work with Yilma, we constructed a finite optimisation problem whose maximum is equal to the limit of $log_2 F(n;mathbf{k})/{nchoose 2}$ as $n$ tends to infinity and proved a stability theorem for complete multipartite graphs $G$. In this paper we provide a sufficient condition on $mathbf{k}$ which guarantees a general stability theorem for any graph $G$, describing the asymptotic structure of $G$ on $n$ vertices with $F(G;mathbf{k}) = F(n;mathbf{k}) cdot 2^{o(n^2)}$ in terms of solutions to the optimisation problem. We apply our theorem to systematically recover existing stability results as well as all cases with $s=2$. The proof uses a novel version of symmetrisation on edge-coloured weighted multigraphs.