There are a few reasons for Theresa May to call for a snap election.
1. Personal mandate
As you know, Theresa May wasn't elected by the people in UK; she became Prime Minister after David Cameron resigned and she won the Conservative Party's leadership election.
It's difficult to govern without a mandate. Furthermore, it would make it difficult for her to decide the course for UK's exit from the EU. Since she has chosen a "Hard Brexit", she needs support from the people as the government should represent citizens.
She also needs a mandate so that she won't be blamed in the future for negotiating such an important deal without having the popular support from the people.
2. Polling is in her favour
According to a recent opinion polling, the Conservatives are heading for a landslide victory. So, it's a good opportunity to call a general election.
A ComRes poll for the Sunday Mirror and Independent on Sunday gave the Conservative party a walloping 21% lead over the opposition Labour party, while a poll for the Times of London by British pollster YouGov put the Conservative lead over Labour at 17%.
Source: http://edition.cnn.com/2017/04/18/europe/uk-snap-election-explainer/
The Conservatives currently have only a 17-seat majority in the 650-seat House of Commons. If she wins more seats, it would be much easier for her to pass the necessary bills related to Brexit, such as the "Brexit bill" and the "EU divorce bill".
Most importantly, the final Brexit deal requires the Parliament to vote in order to approve it, so having a larger majority reduces the chances of the UK leaving the EU without a deal.
3. To secure a mandate for the Brexit plan
This election would allow the public to show their support for Theresa May's Brexit plan which she mentioned in an interview with The Sun:
Telling of her hopes from voters on June 8, Mrs May added: “What I hope comes out of the election is support from the public to say we agree with their plan for Brexit, so that when I go into Europe I’ve got that backing of the British people”.
Source: https://www.thesun.co.uk/news/3358730/we-need-an-election-now-to-deliver-brexit-as-rebels-are-trying-to-subvert-will-of-the-people-every-step-of-the-way-theresa-may-says-in-exclusive-chat-with-the-sun/
4. To show the EU that Brexit really means Brexit
On this basis, a resounding majority for May would remove any motive for the EU negotiators to make the UK’s Brexit terms as unpalatable as possible in the belief that it would help UK voters realise the terms of Brexit are just too painful to accept.
Source: https://www.theguardian.com/politics/2017/apr/18/mays-real-reason-for-calling-election-to-show-eu-that-brexit-really-means-brexit
This would give the EU lesser arguments to give the UK a bad deal and at the same time to give Theresa May a stronger argument since she has the popular support.
5. To keep the United Kingdom united
As it's well-known that the Scottish National Party (SNP) is trying to push for another independence referendum, it's hoped that the Conservatives would gain more Scottish seats to the House of Commons after this election which would weaken SNP's dominance.
Currently, the SNP has 56 Scottish seats to the House of Commons while the Conservative, Labour and Liberal Democrat parties each has one.
So we need a general election and we need one now, because we have at this moment a one-off chance to get this done while the European Union agrees its negotiating position and before the detailed talks begin.
[ ... ]
Every vote for the Conservatives will make it harder for opposition politicians who want to stop me from getting the job done.
Every vote for the Conservatives will make me stronger when I negotiate for Britain with the prime ministers, presidents and chancellors of the European Union.
Every vote for the Conservatives means we can stick to our plan for a stronger Britain and take the right long-term decisions for a more secure future.
(emphasis mine)