While Vagrant and Ansible work very nicely together, as mentioned in comments to your question, the use of either of these tools does not require the use of the other.
Ansible is perfectly usable without Vagrant and Vagrant, as documented here, can use over 10 other configuration methods, including other config management systems(chef, puppet, salt).
There is some overlap in functionality between Vagrant and Ansible. For example both projects can create servers. Ansible supports a number of cloud service providers and virtualization systems as documented here. Similarly, Vagrant supports some providers as well.
Vagrant is best at creating servers, and especially (local) VMs.
Ansible is a much more general-purpose tool. As you are aware, besides creating servers, you can also configure and orchestrate them. You can use Ansible to deploy your application code, manage networking devices and many other use-cases.
The benefit of going with Ansible-only approach is that you have one less dependency in your toolset...You need only Ansible. The drawback is that you'll need to figure out the nuances of creating servers for your intended platform. That can complicate your roles/playbooks.
The benefit of using Vagrant for provisioning is it might be a simpler to create servers regardless of what platform you use to run them.
A very common use-case is people use Vagrant to spinup local development VMs. This allows them to use the same Ansible playbooks to configure/deploy dev, qa and prod environments. This helps address a common problem of "worked fine on my local dev" situation where a local dev computer might have different configuration or even OS relative to qa and production environment. Running a VM allows you to use the same OS.