Browserify is a build time tool which enables the programmer to combine files and have a module structure within this single packaged file. This affords practical flexibility, such as dynamically requiring files (as long as the dynamically required modules are required in a manifest module with it's own require method).
RequireJs is a runtime tool, in which you load modules from the browser.
You can use both by packaging files together using browserify and dynamically loading these packaged files using requirejs.
I personally use browserify and have my own lightweight dynamic loader. This allows me to be free of the requirejs boilerplate logic in every file.
One cool thing about Browserify if you can package a bunch of lightweight & focused javascript snippets you find on the internet, instead of using heavyweight libraries. Often times, the essential nugget of logic is tiny, compared to the boilerplate, cruft, & edge case concerns of the library.