Have you tried some kind of query refactoring to force the query optimizer to do what you expect?
Sometimes the same query with a different syntax takes a different query plan...
select sum(amount)
from (
select amount, ledgerdate
from vwCashTransactions
where groupaccountid = @P1
) as a
where ledgerdate between @P2 and @P3
-- Gianluca Sartori