I buy a new phone every year, but I normally buy phones that are 6-12 months old:
July 2014 - HTC One M7
April 2015 - Huawei Ascend Mate 7
April 2016 - S6 Edge+
As soon as the Galaxy S7 becomes available I'm hoping the S6 Edge+'s price will fall and then I'll pick one up. By getting phones that are from the previous year I a) save money, b) avoid any early bugs/performance issues, c) don't have to wait for the phone to be upgraded to the latest version of Android.
Plus, I get to sit and wait and read lots of reviews on the current year's flagships to see which one I fancy for next year.