Once possibility is a rusty cable/housing. When the cable or cable housing gets rusty it can be the case that the spring of the derailleur can't provide enough force to overcome the friction of the cable moving through the housing. You can test this by disconnecting the cable from the derailleur and seeing if it is difficult it is to pull the cable manually (after you've switched the gear down). If this is the problem, the solution for this is to replace the gear cable.