Hi Claire,
# It is not necessary to provide a address on gre / st0 interface.
unnumbered interface will work for you in both scenarios.
GRE will have tunnel source and tunnel destination as the external ip header ip's in GRE.
Similary for st0 unumbered interfaces will work.
All you need to give in the config is :
set interfaces gr-0/0/0 unit 0 family inet
set interfaces st0 unit 0 family inet
Family inet defines that this interface would be used for ipv4 traffic.
However if you have a requirement where you want to run a dynamic routing protocol on these logical interface , you definitely need to have an ip on the interfaces.
Any feature which requires to advertise its own detail ( ospf , bgp) for communication purpose you need to have an ip on the logical interface like gre and st0.
Let me know if you still have any doubts.
regards
Hemant