You don't need a cursor for this. Can you not do something like:
SELECT @Taxes = SUM(ISNULL(Tax, 0))
FROM
(
SELECT CASE WHEN ((@BasicSalary >= FromLevel) AND (@BasicSalary < ToLevel)) THEN ((@BasicSalary - FromLevel)*(PercentTax/100))
WHEN ((@BasicSalary > FromLevel) AND (@BasicSalary >= ToLevel)) THEN ((ToLevel - FromLevel)*(PercentTax/100))
ELSE 0
END AS Tax
FROM CF_Tax WITH (NOLOCK)
)
Added to that, you can / should look at query performance and cursor performance. Your cursor is very basic and so you could apply the some of the following to the cursor to speed it up.
DECLARE Taxes_Cursor CURSOR FAST_FORWARD FORWARD_ONLY READ_ONLY FOR
SELECT FromLevel,ToLevel,PercentTax FROM CF_Tax ORDER BY PercentTax
OPEN Taxes_Cursor
Many many queries can be done using a single select or using a CTE (Common table expression). SQL is fantastic if used correctly.