Is there a difference between these 2? If so which one should I use?
I don't think there are any differens, but I would use the site definition one.
I must check the code to verify how they work (maby someone else will do it before me)
There is no difference in the functionality (I just did check the code:)). ContentReference.StartPage uses the SiteDefinition. One benefit of SiteDefinition (but not SiteDefinition.Current) is that it can be used as a service in dependency injection, so you would not need any static access that could be a problem when writing unit tests.