Depends on the subject. Both words are used in many different situations... in some situations either could be used. "Home-grown" can mean literally grown or made at home or in a small town, but home-grown can also mean something that originated, generally, from nearby: home-grown ideas. For that you would not say "local" because the emphasis is on the distinction from distant or established ideas. "Home-grown" gives meaning that when local sometimes doesnt.
I think it is one of those things you have to see examples of to realize the connotation.