We conduct an extensive measurement study in an operational cellular network in dense urban settings and identify two key sources of inefficiencies in standard 3GPP handoff technique: wrong timing of handoff and sub-optimal base station association at a point. Based on our study, we propose a novel handoff technique that leverages (1) historical geo-tagged signal strength data from visible base stations at typical mobile user locations and (2) knowledge of the user trajectory. First, we formulate the handoff problem as a bi-criteria optimization problem and present a dynamic programming formulation that provides pareto-optimal solutions that maximize overall signal strength along user trajectory for a range of handoffs. Using an efficient utility based selection technique, we select a solution that balances the tradeoff between reducing number of handoffs and increasing the overall signal strength experienced by the user. Next, we present a much faster greedy heuristic that augments the solution obtained from the dynamic programming formulation when optimizing user performance in the presence of dynamic network load at each base station. A key contribution of our work is to show that striking a tradeoff between the two objectives is much harder in dense macro cellular base station deployments and an effective handoff technique should balance both these objectives well. We show that our technique takes a well balanced approach and achieves more than 25% reduction in the number of handoffs over the standard 3GPP handoff technique in an operational cellular network without incurring reduction in average signal strength, and even improving it by 1dB/sec in some cases. Finally, we propose a novel 3GPP standards compliant trajectory-aware location based handoff protocol and discuss the practical implementation aspects in cellular networks.