The paper presents a solution to economic dispatch (ED) problems with non-convex, non-smooth fuel cost functions, which characterize practical generating units. A method involving a unified semidefinite programming (SDP) formulation of different ED problems through cost function decomposition was presented. The solution of the resulting rank-relaxed SDP problem was refined to achieve the rank constraint using the method of convex iteration and branch-and-bound technique. The SDP method was investigated on some test problems in the literature. The results showed that the SDP method compared favorably with other methods, and can efficiently solve non-convex and non-smooth ED problems.