Here you go:
2011-06-23 06:54:53.277 MyProject[324:207] myNewBudget 123
2011-06-23 06:54:53.296 MyProject[324:207] decimalNumber (null)
2011-06-23 06:54:53.296 MyProject[324:207] roundedDecimalNumber (null)
So it's receiving the value from the text field ok, but then its not converting it.
So it seems. Now it's time to apply basic debugging strategies.
Start with a careful re-reading of the class reference docs for NSNumberFormatter and NSDecimalNumberHandler. You might see something that you immediately recognize is wrong in your code.
Next, make a test program with the absolute minimal amount of code. Start with just a plain NSNumberFormatter. It doesn't need a managed object or a text field, just a plain NSString as the input, and an NSDecimalNumber being NSLog'ed as output. It doesn't need NSDecimalNumberHandler at first, either, since the failure plainly occurs without it.
Run the test and make sure it works. If it doesn't work in minimal form, post the complete code and the output.
Be sure to try the simplest converter that produces an NSDecimalNumber, which is the NSDecimalNumber method + decimalNumberWithString:.
If the test program works in minimal form, then start adding to it one statement at a time. Add the statement for setGeneratesDecimalNumbers:TRUE. Run the test again. If the output is still correct, add the next statement. When it doesn't produce the correct output, you've found what causes the problem. Work it out from there, or post again with all your results.
Where is currencyFormatter leaking?
You create it using alloc, so you own it. Yet you don't release it anywhere in the posted code, so I assume it's not released at all. That's a leak.
http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/MemoryMgmt/
If you do release it later, then it's not a leak. You just didn't post all the relevant code.