I want to know how to remotely detect a software version.
Once attacker knows the version installed, he can exploit published vulnerabilities. So it will be useful to know it when doing penetration testing.
Yes, of course. Service and OS fingerprinting is one of the first steps in the methodology.
Nmap does service fingerprinting and OS detection. But that requires that the service be available to the network (web server, SMB, etc.). You can even connect to a network port with telnet and request the service banner.
If you want to know an installed program that is not network-accessible, then you need to do meta-data analysis of files that the program created, or you need to perform social engineering or open source searches to get the version info. For instance, has an employee of the company posted on a tech support forum and revealed the version they use?
I see that the original version of the question asked for a specific service. For that, you can try nmap to see if that service will return a banner, or use the non-network accessible option I laid out above.