I am having the same problem. My site address is something like: http://my.web.com/ez/. If I put just http://my.web.com as SiteURL then e-mails to new users show the correct address http://my.web.com/ez/index.php/..., but notifications about changes on the site are wrong: http://my.web.com/node_...
If I put SiteURL=http://my.web.com/ez/index.php then the notifications are file (http://my.web.com/ez/index.php/node_...), but the e-mail to new users contains a wrong URL: http://my.web.com/ez/index.php/ez/index.php/...
Notice that both templates (for notification and for user registration e-mails) use the same sort of address construction: http://{ezini("SiteSettings","SiteURL")}{concat('content/view/full/',$object.main_node_id)|ezurl(no)}
In the worst case I will just drop the ezurl in one of the templates I think... (I am using v3.4.1 upgraded from 3.3)