If you have an iPhone on SmarTone I finally found a way to stop junk calls. Unfortunately it costs $15/month for a 12 month subscription or $20/month on a month by month plan.
Download an app called "Call Guard" then phone up SmarTone to subscribe - you'll be asked to confirm via a SMS. Once set up, all calls from numbers on junk list are blocked from even reaching your phone. If one does get through, you can open up the app and report the number.
SmarTone maintain the database and add numbers as appropriate. Seems to work very well so far
A cheaper option is to download "HK Junk Calls" and have it make a huge junk call contact in your Address book, with hundreds of spam numbers listed. The phone still rings, but the caller is ID'ed as "Junk Call" so you can ignore. The disadvantage is that this doesn't work well with sync'ed address books and the number list doesn't look to be maintained.
Hope this helps someone - junk calls are irritating and I am content to pay $15 a month to make them go away - just answering a junk call when roaming already costs more than this.