Hi Amit,
in my experience you need BGP in at least two situations:
1) You do want to exercise control about the prefixes which you advertize to the Internet (assuming you have public IP ranges). BGP allows you to control which prefixes you advertize without the need to request your provider to add or remove routing statements.
2) Your situation 3). It will work as you describe it, but you need BGP if you want to make routing decisions in your router, or to implement other policies based in BGP parameters.
For instance, you can use BGP to make sure that you always use the ISP with the shortest AS-path to the destination, and in this way provide possibly better response times to your users. Another example would be the possibility to implement filters for unwanted destinations etc.
I am sure there are other situations where BGP is useful, but these two are examples I often see.
HTH, Thomas