In this paper we consider the problem of efficient data gathering in sensor networks for arbitrary sensor node deployments. The efficiency of the solution is measured by a number of criteria: total energy consumption, total transport capacity, latency and quality of the transmissions. We present a number of different constructions with various tradeoffs between aforementioned parameters. We provide theoretical performance analysis for our approaches, present their distributed implementation and discuss the different aspects of using each. We show that in many cases our output-sensitive approximation solution performs better than the currently known best results for sensor networks. Our simulation results validate the theoretical findings.