Well, you have code in your function to handle Nulls, but the first line itself is the problem:
Public Function ReturnReqDate(strDivision As String, strDevCode As String, dteSiteStart1 As Date, dteTradersComp As Date, dteBuilderComp As Date) As Date
A variable declared as "Date" can not accept a Null. The only data type that can accept the Null is Variant, so change any type that might be Null to Variant (including the return value, since you set it to Null).