In this paper we study a problem named graph partitioning with supply and demand (GPSD), motivated by applications in energy transmission. The input consists of an undirected graph G with the nodes partitioned into two sets: suppliers and consumers. Each supply node has associated a capacity and each consumer node has associated a demand. The goal is to find a subgraph of G and to partition it into trees, such that in each tree: (i) there is precisely one supplier and (ii) the total demand of the consumers is less than or equal to the capacity of the supplier. Moreover, we want to maximize the demand of all the consumers in such a partition. We also study a variation of the GPSD, termed energy delivery (ED). In this paper we show the following results: 1. A 2k-approximation algorithm for the GPSD problem, where k is the number of suppliers. This is the first approximation algorithm proposed for the general case. 2. A 2-approximation for the GPSD in the case of two suppliers implies a polynomial time algorithm for the famous minimum sum 2-disjoint paths problem, which is not known if it is in P or NP-hard. 3. The ED problem in the case of two or more suppliers is hard to approximate within any factor, assuming P ≠ NP.