I finally found solution for same issue - android connects, but very soon connection stop working even while VPN is still up.
My phone (Samsung Galaxy S) has Android 2.3.1 , but I had same issues with earlier OS versions (2.1 and 2.2)
My PPTP server is DD-WRT on Linksys router LS160 (Firmware: DD-WRT v24-sp2 (08/07/10) std ) - but I had same issues with PPTP server on native LS160 Linksys OS, and also with DD-WRT on WRT54G.
Initial problem was that Android 2.1 would not connect at all, and initial solution was to allow "optional" encryption on DD-WRT, while Android did not use encryption. That "fixed" connection (it would connect and stay connected), BUT introduced next problem.
Next problem was that after short time connection just stop working (ping packets start with 2 out of 3 lost, then after some more time none pass)
SOLUTION to this is counter intuitive, because I had to do opposite of solution to initial problem:
1) Set DD-WRT to REQUIRE encryption
Go to Services/VPN/PPTP and set "Force MPPE Encryption" to "Enable"
2) Set Android to USE encryption
Go to Settings/Wireless&Net/VPN and Edit your VPN to have "Enable encryption" checked
Key "solution" here was to remove "optional" from DD-WRT server, and force it to accept only encrypted. Without that, just setting Android to use encryption did not work (ie my original problem, android would not even connect to VPN).
Downside for this is that I'm not sure if older versions of Android had "enable/disable encryption" checkbox. I think 2.1 didn't have this, in which case it was always "disabled encryption" and above soultion would not work. But Android 2.3 definitely have this option, and I believe 2.2 too.