Lots of good advice here. Just to add one bit, there are lots of TRPHACER-type acronyms around, but the one that I've found most useful is
C - Callsign
A - Aircraft type
R - Route
P - Position
A - Altitute (&QNH)
R - Request
Who you are, where you are, what you want. The only time I alter it is when crossing a MATZ, when I add an ETA to the MATZ before the Request (having once been told off by Boscombe Down for not telling them....
).