@Ashvin
BGP can only introduce detination based routes to their neighbors. There are lots of tools like communities that you mention to make the distribution of more specific routes scripted and reasonably automated.
But at the end of the day, BGP is introducing destination prefixes into the forwarding table and cannot do any source based routing.