Extracted out the ordinal aspect out into it own function. OrdinalSuffix
Code:
Namespace Global.Exts.Ordinals
  <HideModuleName>
Public Module Exts
  <Extension> Public Function OrdinalSuffix( value As Integer) As String
    If value < 0 Then Return ""
    If ((value \ 10) Mod 10)=1 Then Return "th"
    Select Case value
      Case 1:Return "st"
      Case 2:Return "nd"
      Case 3:Return "rd"
    End select
    Return "th"
  End Function
Now the ToFullDateString
Code:
  <Extension> Public Function ToFullDateString(d As Date) As String
     return String.Format("{0}{1} {2}",d.Day,  d.Day.OrdinalSuffix ,d.ToString("MMMM yyyy"))
   End Function
End Module 
End Namespace
And example usage

Code:
 Dim dd = #09/27/1979#.ToFullDateString ' That's a US date literal