I am aware you can texture simple objects in UE4 but lets say I have created a mesh that needs to have markings on it for example a football, would I need to texture this in the 3D software first for example Blender or can this be done in UE4?
For something like a football, that has fabric seams, laces, and writing, it would probably be easier to texture it in 3D Software. You would unwrap the UVs in Blender and create a custom texture.
For something more complex like a building you could unwrap it then import it with multiple Material Elements and texture each with a tile-able texture.
Or you could use a Layer Blend. For an example of this take a look at the Material_Advanced level in the Content Examples project.