I generally follow below. Though I'm not expert on technical merits, I found below way of partitioning is useful to me. Keeping swap in the beginning of extended partition gives flexibility that it need not to be touched ever. In case later, if I ever want to merge to partitions into one or split partitions into 2, I can do it. If I keep swap at the end, it interfere in that case.
Second, I do create /sroot (secondary root partition) - Its mainly for, upgrade purpose. Before I move to newer version Ubuntu on every 6 months, I first installed on it here and run it for a while. Once everything is set, I will install on primary root partitions. It gives flexibility in moving back to previous Ubuntu if something not working. Also, I test pre-release ubuntu version using this one.
/data - I keep movies, music, pictures and any other documents (like firefox, thunderbird, profiles, other app profiles, ) and I make soft link with directory from /home. This helps me if I ever want to do complete (clean clean) installation of Ubuntu. It take care of removing any kind of residual config with existing Gnome or any other apps on upgrade to newer versions.
I also , leave some space for Windows partitions if its laptop. Some case you might really wanted to run Windows because some of providers (netflix, etc) doesnt run fully on Ubuntu and running over Virtual Machine isn't that smoother experience.
/swap - 2GB
/ - 20GB
/home - 100GB
/data - [rest of hard-disk]
/sroot - 10GB [Secondary root]
I don't give partition for /boot. Its not needed if you are classic user like browsing and do some personal computing. /boot could be just a directory under /.