Here's the upgrade path I chose a few months ago from about the same version you are running now. My use case is log shipping and analysis.
I use puppet as a configuration management system and I had the luxury of getting new hardware for the new setup which meant that I did not need to deal with backing up Elasticsearch indices and restoring them to the new setup.
I am also running three clusters (testing, staging and production) which gives me a bit of tolerance when trying new features...
The new versioning makes life much easier so I would just choose the latest stable release (which should be 5.5.2 at the moment) for all of the Elastic products. I pushed 5.5.2 to testing yesterday and will upgrade staging today. With a configuration management system the minor version upgrades are quite easy.
Configuration changes I had to do for the upgrade from pre version 5
- Logstash GROK filters needed rewriting
- Elasticsearch will need to bind to an IP other than localhost to cluster
- I had not noticed that I was running an old JAVA version so had to update that ("We recommend installing Java version 1.8.0_131 or later")
As far as I remember those were the major things in addition to anything that is mentioned in the breaking changes documentation
I made sure to use the same input settings in Logstash so I could point DNS at the new setup when everything was ready. Then I worked through anything that was still coming in to the old setup, one by one, to restart services that had cached the old DNS data.
I was not really looking for any specific new features so can't comment on that