Clique cover problem Consider the following graph problem. We are given a graph $\mathcal{G} = (\mathcal{V},\mathcal{E})$, where $\mathcal{V}$ is the set of vertices and $\mathcal{E}$ is the set of edges. For each vertex $V \in \mathcal{V}$, there is a weight $W(V)$. 

For a clique $Q=(Q_V,Q_E)$ where $Q_v \subset \mathcal{V}$ and $Q_E \subset \mathcal{E}$, the weight of clique $Q$ is defined as $W(Q) = \max_{V \in Q_V}W(V)$. 

Now, we want to find a set of cliques covering all vertices $\mathcal{V}$ such that the sum of weights of these cliques are minimum.

In this problem NP-hard? 
I think since the graphs are general, when the weights are equal, then the problem become minimum clique cover problem in which we want to cover the graph $\mathcal{G}$ with minimum number of cliques. Since this problem is NP-hard, the problem with arbitrary weights is also NP-hard. Am I right?

How can we find an approximation algorithm for this problem?
I think the most trivial algorithm that comes to mind is this but I don't know how good it is.

Sort the vertices based on their weights in decreasing order (the first one has the highest weight) and if two have the same weight we sort them based on the number of edges of them. Assume the sorted list of vertices is $V_1, \ldots, V_{10}$. Now, we start from the clique $C = V_1$ and check the list $V_2, \ldots, V_{10}$ from left to right. For each element, we check whether adding $V_j$ to $S$ results in a clique or not. If yes, we form a clique of $S$ and $V_j$, and remove $V_j$ from the list. We continue this process (now for $S = \{V_1,V_j\}$) until we reach the end of list $V_2, \ldots, V_{10}$. Now we remove the vertices of set S, from $V_1, \ldots, V_{10}$, and repeat the above procedure for the first element of $V_1, \ldots, V_{10}$ minus the set $V$.
I don't know if there is a suitable approximation algorithm for this problem, but I can provide a counter-example for your heuristic algorithm: 
Assume G has 2*n vertices with weights 
$$W(v_i) = w - \epsilon * i$$
Which in your algorithm will be sorted by this order:
$$v_1, v_2, ... v_{2n}$$
And there's an edge between $v_i$ and $v_j$ iff $\exists k : i-j = 2*k$
The resulting graph is the union of 2 cliques with size n
The algorithm alternates between these two, which means in every step a clique with exactly one vertex will be returned, yielding a final answer with weight:
$$2*n*w - \epsilon * n * (2*n+1)$$
But we know that the optimum weight is just $2*w - 3*\epsilon$ 
So the approximation factor can be as big as $n/2$ (assuming that the graph has $n$ vertices) which is not very interesting because the obvious algorithm "Pick each vertex as a clique" has an approximation factor of $n$