What is the optimized way to pass multiple parameter from a single table to a function?
As a complement to Edgars answer you can do it without declaring any variables as:
SELECT dbo.fn_calcaerialdistance (x.latitude
                                 ,x.longitude
                                 ,y.latitude
                                 ,y.longitude)
FROM loc.locations as x
CROSS JOIN loc.locations y
WHERE x.place_name = 'Delhi'
  AND y.place_name = 'Mumbai' ;

I wouldn't expect it to perform any better though.
In addition you can calculate several distances at once
SELECT x.place_name
     , y.place_name
     , dbo.fn_calcaerialdistance (x.latitude
                                 ,x.longitude
                                 ,y.latitude
                                 ,y.longitude)
FROM loc.locations as x
CROSS JOIN loc.locations y
WHERE x.place_name in ('Delhi', 'Bangalore') 
  AND y.place_name = 'Mumbai' ;