What is the difference between these 2 fields? And how to effectively use them both?
They are always having the same values.
You may find this thread useful. It exactly explains.
The Release date is the date when your software is ready to go live.
The End date is the "final" date for your project, ie the release date plus some other time allowing for the guarantee period towards the released software. The end date is also the date used when JIRA calculates your charts.
Please note: This is my interpretation of it.
I was hoping my flamethrower issue would appear.
We use begin and end dates for sprints and release date for deployment. We use versions for sprints since there isn't a tie between greenhopper and jira on this - but, that is what we use because it makes reporting so much easier.