All existing lookup algorithms in structured peerto-peer (P2P) systems assume that all peers are uniform in resources (e.g., network bandwidth, storage and CPU). Messages are routed on the overlay network without considering the differences of capabilities among participating peers. However, the heterogeneity observed in deployed P2P systems is quite extreme (e.g., with up to 3 orders of magnitude difference in bandwidth). The bottleneck caused by very limited capabilities of some peers therefore could lead to inefficiency of existing lookup algorithms. In this paper we propose a super-peer based lookup algorithm and evaluate it using a detailed simulation. We show that our technique not only greatly improves the performance of processing queries but also significantly reduces aggregate bandwidth consumption and processing cost of each query.