The Idea of a Business Analyst in general is to look at the business, its processes, revenue flow, governance etc and determine where improvements can be made.
When it comes to software creation this can potentially be narrowed down into specific feature requests, ie the software must allow the user to do process X with information Y so the business can reduce staffing in dept Z.
However! in my view, this often doesn't work well in practice.
The day to day process of creating software is pretty far removed from financial/time and motion/governance high level aspects of a business that an analyst would be primarily concerning themselves.
"We don't sell as many item as expected in Germany because they have a weird store card system we don't support"
doesn't translate well into:
"Make the buy button bigger and put in an extra field for expiry date, but only when the IP resolves to Germany or the user has a German address, but hasn't selected the UK language selection drop down"
Also, it will have a host of more 'businessy' concerns such as:
"Hire some German speaking people in credit control and negotiate a deal with a German bank"
All too often you see Project Managers being called BAs and doing their analysis by asking Stakeholders "what colour would you like the button to be".
So my answer is "Yes, The business needs a BA, and No, your agile project doesn't."